/* Canonical teal–cyan Portal system.
   This is intentionally loaded after portal.css so existing route, component,
   security and JavaScript contracts retain their DOM ownership. */
:root {
  color-scheme: light;
  --portal-app-canvas: #f3fbfc;
  --portal-surface-light: #ffffff;
  --portal-surface-raised: var(--portal-surface-light);
  --portal-action: #0f766e;
  --portal-action-hover: #115e59;
  --portal-on-action: #ffffff;
  --portal-brand: #0d9488;
  --portal-brand-hover: #0f766e;
  --portal-context: #0369a1;
  --portal-rail: #063b47;
  --portal-rail-surface: #0b5261;
  --portal-rail-hover: #0a5666;
  --portal-rail-border: #176576;
  --portal-rail-text: #effcfd;
  --portal-rail-muted: #c0dde2;
  --portal-ink: #073a45;
  --portal-muted: #456b77;
  --portal-muted-strong: #335965;
  --portal-border: #d5e9ed;
  --portal-border-strong: #8ccfcf;
  --portal-bg: var(--portal-app-canvas);
  --portal-bg-deep: #e8f6f7;
  --portal-chrome: var(--portal-surface-light);
  --portal-surface: var(--portal-surface-light);
  --portal-surface-strong: #e8f6f7;
  --portal-surface-soft: #e6f8f7;
  --portal-text: var(--portal-ink);
  --portal-accent: var(--portal-brand);
  --portal-accent-hover: var(--portal-brand-hover);
  --portal-accent-deep: var(--portal-action);
  --portal-accent-ink: var(--portal-on-action);
  --portal-info: var(--portal-context);
  --portal-focus: var(--portal-context);
  --portal-warning: #a16207;
  --portal-danger: #b91c1c;
  --portal-success: #15803d;
  --portal-light-canvas: var(--portal-app-canvas);
  --portal-light-surface: var(--portal-surface-light);
  --portal-light-soft: #e8f6f7;
  --portal-light-border: var(--portal-border);
  --portal-light-border-subtle: #e4f0f2;
  --portal-light-accent-border: #8ccfcf;
  --portal-light-accent-soft: #e6f8f7;
  --portal-light-hover-surface: #f8fdfd;
  --portal-light-muted: var(--portal-muted);
  --portal-light-action: var(--portal-action);
  --portal-landing-divider: var(--portal-border);
  --portal-control-border: var(--portal-border);
  --portal-control-surface: var(--portal-surface-light);
  --portal-control-hover: #f8fdfd;
  --portal-control-disabled-border: #c9e1e5;
  --portal-control-disabled-surface: #edf6f7;
  --portal-control-disabled-text: #78949b;
  --portal-input-surface: var(--portal-surface-light);
  --portal-table-divider: var(--portal-border);
  --portal-nav-active-text: var(--portal-rail-text);
  --portal-nav-active-icon: #7dd3fc;
  --portal-nav-hover-surface: var(--portal-rail-hover);
  --portal-light-placeholder: #5b7d86;
  --portal-light-disclosure-open-border: #73cdd1;
  --portal-landing-brand-border: #92ddd8;
  --portal-landing-kicker-border: #8edbd6;
  --portal-landing-preview-border: #9fdde0;
  --portal-landing-callout-border: #b8e1ee;
  --portal-landing-callout-surface: #eaf8fc;
  --portal-landing-studio-hover-border: #5dbfc6;
  --portal-landing-footer-brand-text: #f3ffff;
  --portal-landing-footer-muted: #b9dee3;
  /* Aura dark primitives stay in the canonical token owner.  The runtime
     selector below only remaps semantic aliases, so a route never needs raw
     colours to render either theme. */
  --portal-dark-app-canvas: #0b132b;
  --portal-dark-surface-light: #1c2541;
  --portal-dark-surface-raised: #243252;
  --portal-dark-surface-strong: #17213a;
  --portal-dark-surface-soft: #14203a;
  --portal-dark-ink: #f0fbff;
  --portal-dark-muted: #b9cbd7;
  --portal-dark-muted-strong: #d4e4eb;
  --portal-dark-border: rgba(154, 211, 222, .22);
  --portal-dark-border-strong: #4fd1c5;
  --portal-dark-action: #14b8a6;
  --portal-dark-action-hover: #2dd4bf;
  --portal-dark-on-action: #062c35;
  --portal-dark-brand: #2dd4bf;
  --portal-dark-brand-hover: #5eead4;
  --portal-dark-context: #38bdf8;
  --portal-dark-focus: #7dd3fc;
  --portal-dark-warning: #fbbf24;
  --portal-dark-danger: #fca5a5;
  --portal-dark-success: #86efac;
  --portal-dark-rail: var(--portal-dark-app-canvas);
  --portal-dark-rail-surface: var(--portal-dark-surface-soft);
  --portal-dark-rail-hover: #1c3552;
  --portal-dark-rail-border: rgba(125, 211, 252, .2);
  --portal-dark-rail-text: #effcff;
  --portal-dark-rail-muted: #b5d6dd;
  --portal-dark-bg-deep: #070d20;
  --portal-dark-border-subtle: rgba(154, 211, 222, .14);
  --portal-dark-accent-border: #2a9eaa;
  --portal-dark-accent-soft: rgba(45, 212, 191, .12);
  --portal-dark-hover-surface: #263a5a;
  --portal-dark-landing-brand-border: rgba(94, 234, 212, .52);
  --portal-dark-landing-kicker-border: rgba(125, 211, 252, .45);
  --portal-dark-landing-preview-border: rgba(125, 211, 252, .34);
  --portal-dark-landing-callout-border: rgba(45, 212, 191, .42);
  --portal-dark-landing-callout-surface: rgba(20, 184, 166, .1);
  --portal-dark-landing-footer: #081125;
  --portal-dark-control-disabled-surface: #152039;
  --portal-dark-control-disabled-text: #7894a5;
  --portal-dark-input-surface: #16213b;
  --portal-dark-placeholder: #9bb8c5;
  --portal-dark-shadow: 0 22px 58px rgba(0, 0, 0, .34);
  --portal-dark-elevation-1: 0 1px 2px rgba(0, 0, 0, .22);
  --portal-dark-elevation-2: 0 10px 28px rgba(0, 0, 0, .34);
  --portal-dark-elevation-3: 0 24px 66px rgba(0, 0, 0, .58);
  --portal-dark-elevation-float: 0 16px 42px rgba(0, 0, 0, .42);
  --portal-dark-scrim: rgba(0, 0, 0, .56);
  --portal-dark-canvas-glow-mint: rgba(45, 212, 191, .13);
  --portal-dark-canvas-glow-sky: rgba(56, 189, 248, .09);
  --portal-dark-table-hover: rgba(45, 212, 191, .1);
  --portal-shadow: 0 18px 44px rgba(2, 20, 29, .18);
  --portal-radius-lg: 16px;
  --portal-radius: 12px;
  --portal-radius-md: 12px;
  --portal-radius-sm: 9px;
  --portal-space-1: 4px;
  --portal-space-2: 8px;
  --portal-space-3: 12px;
  --portal-space-4: 16px;
  --portal-space-5: 20px;
  --portal-space-6: 24px;
  --portal-space-8: 32px;
  --portal-space-10: 40px;
  --portal-icon-xs: 14px;
  --portal-icon-sm: 16px;
  --portal-icon-md: 18px;
  --portal-icon-lg: 20px;
  --portal-icon-xl: 24px;
  --portal-elevation-0: none;
  --portal-elevation-1: 0 1px 2px rgba(2, 20, 29, .08);
  --portal-elevation-2: 0 8px 20px rgba(2, 20, 29, .12);
  --portal-elevation-3: 0 24px 66px rgba(0, 0, 0, .46);
  --portal-scrim: rgba(0, 7, 13, .56);
  --portal-scrim-blur: 2px;
  --portal-control-height: 42px;
  --portal-transition: 180ms cubic-bezier(.2, .8, .2, 1);
  --portal-motion-fast: 140ms;
  --portal-motion-base: 220ms;
  --portal-motion-slow: 420ms;
  --portal-motion-distance: 10px;
  --portal-motion-ease-standard: cubic-bezier(.2,.8,.2,1);
  --portal-motion-ease-emphasis: cubic-bezier(.16,1,.3,1);
  --portal-landing-motion-fast: 160ms;
  --portal-landing-motion-ui: 220ms;
  --portal-landing-motion-reveal: 480ms;
  --portal-landing-motion-hero: 980ms;
  --portal-landing-motion-stagger: 110ms;
  --portal-landing-motion-sequence: 7600ms;
  --portal-landing-motion-ease: cubic-bezier(.16,1,.3,1);
  --portal-landing-cinematic-curtain: 1100ms;
  --portal-landing-cinematic-aperture: 1200ms;
  --portal-landing-cinematic-step: 520ms;
  --portal-landing-scroll-scrub: 220ms;
  --portal-landing-scroll-parallax: 26px;
  --portal-landing-pointer-tilt: 2.4deg;
  --portal-landing-anchor-offset: 80px;
  --portal-landing-anchor-gap: 16px;
  --portal-elevation-float: 0 12px 30px rgba(2, 20, 29, .16);
  --portal-rail-width: 272px;
  --portal-content-max-width: 1600px;
  --portal-desktop-page-padding: clamp(24px, 3vw, 40px);
  --portal-mobile-page-padding: 16px;
  --portal-mobile-content-inset: 104px;
  --portal-section-gap: clamp(20px, 2.4vw, 30px);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html { background: var(--portal-app-canvas); }
body {
  background: var(--portal-app-canvas);
  color: var(--portal-ink);
  text-rendering: optimizeLegibility;
}

/* This is keyboard-only primary navigation. Use the AA action pair instead
   of the lighter mint brand token retained by the legacy shell. */
.skip-link {
  background: var(--portal-action);
  color: var(--portal-on-action);
}

.portal-button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--portal-focus) 82%, white);
  outline-offset: 3px;
}

/* The legacy catalogue applies a global important outline.  Light access and
   public surfaces need an equally important, higher-specificity focus ring
   with enough contrast against both white and the teal-tinted canvas. */
.portal-shell--auth :focus-visible,
.portal-shell--landing :focus-visible,
.portal-landing :focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 3px;
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) {
  background: var(--portal-app-canvas);
}

.portal-sidebar {
  border-right-color: var(--portal-rail-border);
  background: var(--portal-rail);
  color: var(--portal-rail-text);
  box-shadow: none;
}

.portal-header {
  border-bottom-color: var(--portal-border);
  background: var(--portal-surface-light);
  backdrop-filter: none;
}

.portal-sidebar-create,
.portal-button--primary {
  border-color: var(--portal-action);
  background: var(--portal-action);
  color: var(--portal-on-action);
}

.portal-sidebar-create:hover,
.portal-sidebar-create:focus-visible,
.portal-button--primary:hover:not(:disabled),
.portal-button--primary:focus-visible {
  border-color: var(--portal-action-hover);
  background: var(--portal-action-hover);
  color: var(--portal-on-action);
}

.portal-button {
  min-height: var(--portal-control-height);
  border-color: var(--portal-control-border);
  background: var(--portal-control-surface);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-button--primary {
  border-color: var(--portal-action);
  background: var(--portal-action);
  color: var(--portal-on-action);
}

/* The access renderer scopes its submit button through the form footer.
   Keep an equally explicit route rule so the final theme remains the visual
   authority even when the catalogue gains another auth-specific selector. */
.portal-auth-page--access .portal-auth-primary .portal-button--primary {
  border-color: var(--portal-action);
  background: var(--portal-action);
  color: var(--portal-on-action);
}

.portal-button:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--portal-control-border) 72%, white);
  background: var(--portal-control-hover);
}

.portal-button--primary:hover:not(:disabled),
.portal-auth-page--access .portal-auth-primary .portal-button--primary:hover:not(:disabled) {
  border-color: var(--portal-action-hover);
  background: var(--portal-action-hover);
  color: var(--portal-on-action);
}

.portal-button--quiet {
  border-color: var(--portal-control-border);
  background: transparent;
  color: var(--portal-muted-strong);
}

.portal-button:disabled {
  border-color: var(--portal-control-disabled-border);
  background: var(--portal-control-disabled-surface);
  color: var(--portal-control-disabled-text);
}

.portal-nav-link[aria-current="page"] {
  border-color: color-mix(in srgb, var(--portal-context) 74%, transparent);
  background: color-mix(in srgb, var(--portal-context) 19%, transparent);
  color: var(--portal-nav-active-text);
}

.portal-nav-link[aria-current="page"] .portal-nav-icon,
.portal-command-trigger > span:first-child,
.portal-pwa-install-trigger > span:first-child {
  color: var(--portal-nav-active-icon);
}

.portal-nav-link:hover,
.portal-command-trigger:hover,
.portal-pwa-install-trigger:hover:not(:disabled),
.portal-menu-button:hover {
  border-color: var(--portal-control-border);
  background: var(--portal-nav-hover-surface);
}

.portal-card,
.portal-module-card,
.portal-action-card,
.portal-studio-card,
.portal-dashboard-draft,
.portal-data-table-wrap,
.portal-page [class$="-card"] {
  border-color: var(--portal-border);
  background: var(--portal-surface);
  box-shadow: none;
}

.portal-page :is([class$="-intro"], [class$="-summary"], .portal-action-center, .portal-start-guide, .portal-capability-hub, .portal-state) {
  border-color: var(--portal-border) !important;
  background: var(--portal-surface-strong) !important;
}

.portal-input,
.portal-select,
.portal-textarea {
  border-color: var(--portal-control-border);
  background: var(--portal-input-surface);
  color: var(--portal-ink);
}

.portal-input:focus,
.portal-select:focus,
.portal-textarea:focus {
  border-color: var(--portal-context);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--portal-context) 20%, transparent);
}

.portal-data-table th,
.portal-data-table td {
  border-bottom-color: var(--portal-table-divider);
}

.portal-data-table tbody tr:hover {
  background: color-mix(in srgb, var(--portal-brand) 8%, transparent);
}

.portal-command-dialog {
  border-color: var(--portal-control-border);
  background: var(--portal-surface);
  box-shadow: var(--portal-elevation-3);
}

.portal-shell--focus .portal-backdrop,
.portal-backdrop,
.portal-command-palette-backdrop {
  background: var(--portal-scrim);
  backdrop-filter: blur(var(--portal-scrim-blur));
}

.portal-mobile-nav {
  border-top-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: 0 -10px 32px rgba(2, 20, 29, .28);
}

/* Access remains email-first and server-owned. This only changes the visual
   canvas and preserves the existing data-portal actions and route bindings. */
.portal-body--auth,
.portal-shell--auth {
  color-scheme: inherit;
  background: var(--portal-light-canvas);
  color: var(--portal-ink);
}

.portal-shell--auth .portal-main {
  width: min(100%, 560px);
  max-width: 560px;
  margin-inline: auto;
  padding-inline: max(16px, var(--portal-safe-left)) max(16px, var(--portal-safe-right));
}

.portal-auth-page--access {
  grid-template-columns: minmax(0, min(100%, 480px));
  grid-template-areas: "header" "intro" "card";
  justify-content: center;
  width: 100%;
  min-height: calc(100vh - 88px);
  column-gap: 0;
  row-gap: 20px;
  margin: 0 auto;
  padding: 28px 0 48px;
}

.portal-auth-page--access .portal-auth-header {
  grid-area: header;
  display: flex;
  min-width: 0;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 16px;
  border-bottom-color: var(--portal-light-border);
}

.portal-auth-page--access .portal-auth-shell { display: contents; }

.portal-auth-page--access .portal-auth-brand {
  position: static;
  min-width: 0;
  gap: 10px;
}

.portal-brand-mark {
  overflow: hidden;
}

.portal-brand-mark-symbol {
  display: block;
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.9;
}

.portal-auth-page--access .portal-auth-brand .portal-brand-mark {
  width: 36px;
  height: 36px;
  border-radius: 11px;
}

.portal-auth-page--access .portal-auth-brand strong { font-size: 13px; }
.portal-auth-page--access .portal-auth-brand small { font-size: 12px; }

.portal-auth-back {
  display: inline-flex;
  min-height: 44px;
  min-width: 44px;
  gap: 7px;
  align-items: center;
  color: var(--portal-light-action);
  font-size: 13px;
  font-weight: 740;
  text-decoration: none;
}

.portal-auth-back .portal-icon { width: var(--portal-icon-sm); height: var(--portal-icon-sm); }

.portal-auth-page--access .portal-auth-locale-nav {
  display: inline-flex;
  gap: 2px;
  align-items: center;
  margin-left: auto;
  padding: 2px;
  border: 1px solid var(--portal-light-border);
  border-radius: var(--portal-radius-sm);
  background: var(--portal-light-surface);
}

.portal-auth-page--access .portal-auth-locale-link {
  display: inline-grid;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  padding-inline: 7px;
  border-radius: 7px;
  color: var(--portal-light-action);
  font-size: 11px;
  font-weight: 760;
  line-height: 1;
}

.portal-auth-page--access .portal-auth-locale-link:hover,
.portal-auth-page--access .portal-auth-locale-link[aria-current="true"] {
  background: var(--portal-light-accent-soft);
  color: var(--portal-accent-deep);
}

.portal-auth-page--access .portal-auth-brand .portal-brand-mark {
  border-color: var(--portal-light-accent-border);
  background: var(--portal-accent);
  color: var(--portal-accent-ink);
}

.portal-auth-page--access .portal-auth-brand strong,
.portal-auth-page--access .portal-auth-brand small,
.portal-auth-page--access .portal-auth-back,
.portal-auth-page--access .portal-auth-intro .portal-title,
.portal-auth-page--access .portal-auth-card .portal-card-title,
.portal-auth-page--access .portal-auth-card > .portal-card-header,
.portal-auth-page--access .portal-auth-card .portal-field > label {
  color: var(--portal-ink);
}

.portal-auth-page--access .portal-auth-back:hover { color: var(--portal-accent-deep); }

.portal-auth-page--access .portal-auth-intro {
  grid-area: intro;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 14px;
  max-width: 480px;
  margin: 0;
  padding: 8px 0 0;
  border-right: 0;
  text-align: center;
}

.portal-auth-page--access .portal-auth-intro .portal-title {
  max-width: 18ch;
  font-size: clamp(38px, 3.7vw, 48px);
  line-height: 1.08;
  text-wrap: balance;
}

.portal-auth-page--access .portal-auth-intro .portal-description {
  max-width: 37ch;
  margin: 0;
  color: var(--portal-light-muted);
}

.portal-auth-page--access .portal-auth-card {
  grid-area: card;
  align-self: start;
  justify-self: stretch;
  width: 100%;
  max-width: 480px;
  padding: 24px;
  border-color: var(--portal-border);
  border-radius: var(--portal-radius-lg);
  background: var(--portal-light-surface);
  box-shadow: var(--portal-shadow);
}

.portal-auth-page--access .portal-auth-card-top,
.portal-auth-page--access .portal-auth-card > .portal-card-header {
  border-bottom-color: var(--portal-light-border-subtle);
}

.portal-auth-page--access .portal-auth-switch {
  width: 100%;
  min-height: 42px;
  border-color: var(--portal-light-border);
  background: var(--portal-light-soft);
}

.portal-auth-page--access .portal-auth-switch a {
  min-width: 0;
  color: var(--portal-light-muted);
}

.portal-auth-page--access .portal-auth-switch a[aria-current="page"] {
  background: var(--portal-light-accent-soft);
  color: var(--portal-accent-deep);
}

.portal-auth-page--access .portal-auth-card .portal-card-subtitle,
.portal-auth-page--access .portal-form-note,
.portal-auth-page--access .portal-field-help {
  color: var(--portal-light-muted);
}

.portal-auth-page--access .portal-auth-primary { gap: 14px; }

.portal-auth-page--access .portal-auth-primary .portal-fields {
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}

.portal-auth-page--access .portal-auth-primary .portal-field { gap: 7px; }

.portal-auth-page--access .portal-auth-primary .portal-form-footer {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  align-items: center;
}

.portal-auth-page--access .portal-auth-primary .portal-form-footer > a {
  min-width: 0;
  min-height: 40px;
  justify-content: flex-start;
  padding-inline: 0;
  color: var(--portal-light-action);
}

.portal-auth-page--access .portal-auth-primary .portal-form-footer > .portal-button--primary {
  grid-column: 1 / -1;
  width: 100%;
}

.portal-auth-page--access .portal-input,
.portal-auth-page--access .portal-select,
.portal-auth-page--access .portal-textarea {
  border-color: color-mix(in srgb, var(--portal-light-border) 70%, var(--portal-light-muted));
  background: var(--portal-light-surface);
  color: var(--portal-ink);
}

.portal-auth-page--access .portal-input::placeholder,
.portal-auth-page--access .portal-textarea::placeholder {
  color: var(--portal-light-placeholder);
}

.portal-auth-page--access .portal-input:focus,
.portal-auth-page--access .portal-select:focus,
.portal-auth-page--access .portal-textarea:focus {
  border-color: var(--portal-context);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--portal-context) 16%, transparent);
}

.portal-auth-page--access .portal-password-toggle {
  color: var(--portal-light-action);
}

.portal-auth-page--access .portal-password-toggle:hover,
.portal-auth-page--access .portal-password-toggle:focus-visible {
  background: var(--portal-light-hover-surface);
  color: var(--portal-action);
}

.portal-auth-page--access .portal-notice {
  border-color: color-mix(in srgb, var(--portal-context) 30%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-context) 8%, var(--portal-surface-light));
  color: var(--portal-context);
}

.portal-auth-page--access .portal-notice strong {
  color: var(--portal-ink);
}

.portal-auth-page--access .portal-notice p {
  color: var(--portal-muted);
  font-size: 12px;
  line-height: 1.55;
}

.portal-auth-page--access .portal-auth-assurance,
.portal-auth-page--access .portal-auth-help,
.portal-auth-page--access .portal-auth-alternatives {
  border-color: var(--portal-light-border);
  background: var(--portal-light-soft);
}

.portal-auth-page--access .portal-auth-assurance[open],
.portal-auth-page--access .portal-auth-help[open],
.portal-auth-page--access .portal-auth-alternatives[open] {
  border-color: var(--portal-light-disclosure-open-border);
}

.portal-auth-page--access :is(.portal-auth-assurance, .portal-auth-help, .portal-auth-alternatives) > summary {
  color: var(--portal-light-action);
}

.portal-auth-page--access .portal-auth-alternatives summary small,
.portal-auth-page--access .portal-auth-fact span {
  color: var(--portal-light-muted);
}

.portal-auth-page--access .portal-auth-alternatives summary:focus-visible {
  outline-color: color-mix(in srgb, var(--portal-context) 72%, transparent);
}

.portal-auth-page--access .portal-auth-provider-option {
  border-color: var(--portal-light-border);
  background: var(--portal-light-surface);
}

.portal-auth-page--access .portal-auth-provider-option.is-enabled {
  border-color: color-mix(in srgb, var(--portal-light-border) 60%, var(--portal-accent));
  background: var(--portal-light-soft);
}

.portal-auth-page--access .portal-auth-provider-option strong {
  color: var(--portal-ink);
}

.portal-auth-page--access .portal-auth-provider-option p,
.portal-auth-page--access .portal-auth-provider-state {
  color: var(--portal-light-muted);
}

.portal-auth-page--access .portal-auth-provider-option .portal-button--quiet {
  border-color: color-mix(in srgb, var(--portal-light-border) 70%, var(--portal-light-muted));
  background: var(--portal-light-surface);
  color: var(--portal-light-action);
}

/* The public companion shares the brand palette but remains intentionally
   distinct from the dense signed workspace. */
.portal-body--landing,
.portal-shell--landing,
.portal-landing {
  color-scheme: inherit;
  background: var(--portal-light-canvas);
  color: var(--portal-ink);
}

.portal-landing {
  background: var(--portal-light-canvas);
}

.portal-landing-nav {
  min-height: 80px;
  border-bottom: 1px solid var(--portal-landing-divider);
}

.portal-landing-brand .portal-brand-mark {
  border-color: var(--portal-landing-brand-border);
  background: var(--portal-accent);
  color: var(--portal-accent-ink);
}

.portal-landing-brand strong,
.portal-landing-hero h1,
.portal-landing-section h2,
.portal-landing-workflow h2,
.portal-landing-trust h2 {
  color: var(--portal-ink);
}

.portal-landing-brand small,
.portal-landing-nav-links,
.portal-landing-hero p,
.portal-landing-section-heading p,
.portal-landing-workflow p,
.portal-landing-trust p {
  color: var(--portal-light-muted);
}

.portal-landing-nav-links a:hover { color: var(--portal-accent-deep); }

.portal-landing-proof li span { color: var(--portal-accent-deep); }

.portal-landing .portal-button--quiet {
  border-color: var(--portal-light-action);
  background: transparent;
  color: var(--portal-light-action);
}

.portal-landing .portal-button--primary {
  background: var(--portal-action);
  color: var(--portal-on-action);
}

.portal-landing-hero {
  grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr);
  padding-top: clamp(64px, 9vw, 116px);
  padding-bottom: clamp(72px, 10vw, 128px);
}

.portal-landing-hero h1 {
  font-size: clamp(40px, 4.5vw, 64px);
  line-height: 1.04;
}

.portal-landing-kicker,
.portal-landing-section-heading > span,
.portal-landing-trust-copy > span {
  color: var(--portal-accent-deep);
}

.portal-landing-kicker span {
  border-color: var(--portal-landing-kicker-border);
  background: var(--portal-light-accent-soft);
  color: var(--portal-accent-deep);
}

.portal-landing-preview {
  border-color: var(--portal-landing-preview-border);
  border-radius: 18px;
  background: var(--portal-light-surface);
  box-shadow: 0 18px 42px rgba(18, 78, 91, .14);
  transform: none;
}

.portal-landing-preview::after { display: none; }
.portal-landing-preview-bar {
  border-bottom-color: var(--portal-light-border-subtle);
  background: var(--portal-light-soft);
}

.portal-landing-preview-body {
  background: var(--portal-light-surface);
}

.portal-landing-preview-heading,
.portal-landing-preview-callout strong {
  color: var(--portal-ink);
}

.portal-landing-preview-heading b,
.portal-landing-preview-steps span.is-active {
  border-color: var(--portal-light-accent-border);
  background: var(--portal-light-accent-soft);
  color: var(--portal-accent-deep);
}

.portal-landing-preview-lines i {
  background: var(--portal-light-border-subtle);
}

.portal-landing-preview-steps span {
  border-color: var(--portal-light-border-subtle);
  background: var(--portal-light-hover-surface);
  color: var(--portal-light-muted);
}

.portal-landing-preview-callout {
  border-color: var(--portal-landing-callout-border);
  background: var(--portal-landing-callout-surface);
}

.portal-landing-preview-callout p {
  color: var(--portal-light-muted);
}

.portal-landing-studio {
  border-color: var(--portal-light-border);
  background: var(--portal-light-surface);
  box-shadow: none;
}

.portal-landing-studio:hover,
.portal-landing-studio:focus-visible {
  border-color: var(--portal-landing-studio-hover-border);
  background: var(--portal-light-hover-surface);
  box-shadow: 0 14px 30px rgba(18, 78, 91, .1);
}

.portal-landing-studio strong { color: var(--portal-ink); }
.portal-landing-studio > span:not(.portal-landing-studio-icon):not(.portal-landing-studio-tag) { color: var(--portal-light-muted); }
.portal-landing-studio-tag { color: var(--portal-accent-deep); }

.portal-landing-workflow,
.portal-landing-trust {
  border-color: var(--portal-landing-divider);
}

.portal-landing-workflow ol li,
.portal-landing-trust-grid article {
  border-color: var(--portal-light-border);
  background: var(--portal-light-surface);
}

.portal-landing-workflow ol li > span,
.portal-landing-trust-grid article > span {
  color: var(--portal-accent);
}

.portal-landing-workflow ol li strong,
.portal-landing-trust-grid article strong {
  color: var(--portal-ink);
}

.portal-landing-footer {
  border-top-color: var(--portal-landing-divider);
  background: var(--portal-ink);
  color: var(--portal-landing-divider);
}

.portal-landing-footer .portal-landing-brand strong { color: var(--portal-landing-footer-brand-text); }
.portal-landing-footer .portal-landing-brand small,
.portal-landing-footer > span,
.portal-landing-footer a { color: var(--portal-landing-footer-muted); }
.portal-landing-footer a:hover { color: var(--portal-light-surface); }

@media (max-width: 920px) {
  .portal-main {
    padding:
      24px
      calc(20px + var(--portal-safe-right))
      calc(92px + var(--portal-safe-bottom))
      calc(20px + var(--portal-safe-left));
  }
  .portal-header { background: var(--portal-chrome); }
  .portal-auth-page--access {
    min-height: auto;
    row-gap: 20px;
  }
  .portal-auth-page--access .portal-auth-intro {
    align-content: start;
    padding: 8px 0 0;
  }
  .portal-auth-page--access .portal-auth-intro .portal-title { max-width: 18ch; }
  .portal-landing-nav-links { display: none; }
  .portal-landing-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 38px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Scroll Continuity layer.  This extends Cinematic Mini across the public
   page without hijacking scroll: the browser only updates compositor-friendly
   CSS variables, while every section remains readable and in normal flow. */
.landing-motion-scroll[data-landing-scroll-motion="active"] {
  --landing-scroll-progress: 0;
  --landing-hero-progress: 0;
  --landing-pointer-x: 0;
  --landing-pointer-y: 0;
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-scroll-scene {
  position: relative;
  isolation: isolate;
  --landing-section-progress: 0;
  --landing-section-offset: 0px;
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-hero::after {
  position: absolute;
  z-index: 0;
  right: clamp(-170px, -12vw, -28px);
  bottom: clamp(-110px, -8vw, -22px);
  width: min(50vw, 620px);
  height: min(50vw, 620px);
  border: 1px solid color-mix(in srgb, var(--portal-context) 24%, var(--portal-border));
  border-radius: 50%;
  background: radial-gradient(circle at 45% 45%, color-mix(in srgb, var(--portal-brand) 15%, transparent), transparent 68%);
  content: "";
  opacity: calc(.16 + (var(--landing-hero-progress, 0) * .28));
  pointer-events: none;
  transform: translate3d(0, calc(var(--landing-hero-progress, 0) * -22px), 0) scale(calc(.96 + (var(--landing-hero-progress, 0) * .06)));
  transition: opacity var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease), transform var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-hero > * {
  z-index: 1;
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .portal-landing-hero-copy {
  transform: translate3d(0, calc(var(--landing-hero-progress, 0) * -8px), 0);
  transition: transform var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-parallax {
  transform: translate3d(0, calc(var(--landing-hero-progress, 0) * -26px), 0) rotate(1.4deg);
  transition: transform var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease), box-shadow var(--portal-landing-motion-ui) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-parallax.landing-motion-pointer {
  transform:
    perspective(1000px)
    rotateX(calc(var(--landing-pointer-y, 0) * -1.1deg))
    rotateY(calc(var(--landing-pointer-x, 0) * 1.1deg))
    translate3d(
      calc(var(--landing-pointer-x, 0) * -5px),
      calc((var(--landing-hero-progress, 0) * -26px) + (var(--landing-pointer-y, 0) * -3px)),
      0
    )
    rotate(1.4deg);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-parallax::before {
  opacity: calc(.26 + (var(--landing-hero-progress, 0) * .3));
  transform: translate3d(calc(var(--landing-hero-progress, 0) * -14px), calc(var(--landing-hero-progress, 0) * 10px), 0);
  transition: opacity var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease), transform var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-studios::before,
.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-trust::before,
.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-spotlights::before {
  position: absolute;
  z-index: -1;
  top: 16%;
  right: -12%;
  width: min(44vw, 520px);
  height: min(44vw, 520px);
  border: 1px solid color-mix(in srgb, var(--portal-context) 18%, var(--portal-border));
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--portal-brand) 12%, transparent), transparent 70%);
  content: "";
  opacity: calc(.12 + (var(--landing-section-progress, 0) * .24));
  pointer-events: none;
  transform: translate3d(0, calc((1 - var(--landing-section-progress, 0)) * 24px), 0);
  transition: opacity var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease), transform var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease);
}

/* Reference-first continuation: the feature strip and product spotlights
   share the page's bounded scene grammar. They remain ordinary semantic
   sections in normal flow; this only adds depth while they enter view. */
.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-features {
  background:
    linear-gradient(
      90deg,
      transparent,
      color-mix(in srgb, var(--portal-brand) calc(var(--landing-section-progress, 0) * 7%), transparent),
      transparent
    );
  transition: background-color var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-feature {
  background: color-mix(
    in srgb,
    var(--portal-light-surface) calc(100% - (var(--landing-section-progress, 0) * 7%)),
    var(--portal-light-accent-soft)
  );
  transition: background-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-spotlights::before {
  top: 24%;
  right: auto;
  left: -14%;
  opacity: calc(.08 + (var(--landing-section-progress, 0) * .2));
  transform: translate3d(0, calc((1 - var(--landing-section-progress, 0)) * 30px), 0) scale(calc(.94 + (var(--landing-section-progress, 0) * .06)));
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .portal-landing-spotlight-preview.landing-motion-pointer {
  transform:
    perspective(1000px)
    rotateX(calc(var(--landing-pointer-y, 0) * -1.2deg))
    rotateY(calc(var(--landing-pointer-x, 0) * 1.2deg))
    translate3d(calc(var(--landing-pointer-x, 0) * -5px), calc(var(--landing-pointer-y, 0) * -3px), 0);
  transform-style: preserve-3d;
  transition:
    transform var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
    box-shadow var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
    border-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .portal-landing-spotlight-preview.landing-motion-pointer::before,
.landing-motion-scroll[data-landing-scroll-motion="active"] .portal-landing-spotlight-preview.landing-motion-pointer::after {
  transform: translate3d(
    calc(var(--landing-pointer-x, 0) * -8px),
    calc(var(--landing-pointer-y, 0) * -6px),
    0
  );
  transition: transform var(--portal-landing-motion-ui) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-studio {
  --landing-pointer-x: 0;
  --landing-pointer-y: 0;
  transform: perspective(900px) rotateX(calc(var(--landing-pointer-y, 0) * -1 * var(--portal-landing-pointer-tilt))) rotateY(calc(var(--landing-pointer-x, 0) * var(--portal-landing-pointer-tilt))) translate3d(0, calc((1 - var(--landing-section-progress, 0)) * 5px), 0);
  transform-style: preserve-3d;
  transition: transform var(--portal-landing-motion-ui) var(--portal-landing-motion-ease), box-shadow var(--portal-landing-motion-ui) var(--portal-landing-motion-ease), border-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-studio::after {
  position: absolute;
  top: -30%;
  left: -45%;
  width: 36%;
  height: 170%;
  background: linear-gradient(105deg, transparent, color-mix(in srgb, var(--portal-brand) 18%, transparent), transparent);
  content: "";
  opacity: calc(.08 + (var(--landing-section-progress, 0) * .16));
  pointer-events: none;
  transform: translateX(calc(var(--landing-section-progress, 0) * 320%)) rotate(14deg);
  transition: opacity var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease), transform var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease);
}

/* The studio card already has a legacy hover lift.  Keep that lift while
   giving the pointer layer enough specificity to add the bounded tilt. */
.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-studio.landing-motion-pointer {
  transform: perspective(900px) rotateX(calc(var(--landing-pointer-y, 0) * -1 * var(--portal-landing-pointer-tilt))) rotateY(calc(var(--landing-pointer-x, 0) * var(--portal-landing-pointer-tilt))) translate3d(0, calc((1 - var(--landing-section-progress, 0)) * 5px), 0);
  transform-style: preserve-3d;
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-studio.landing-motion-pointer.is-pointer-active {
  transform: perspective(900px) rotateX(calc(var(--landing-pointer-y, 0) * -1 * var(--portal-landing-pointer-tilt))) rotateY(calc(var(--landing-pointer-x, 0) * var(--portal-landing-pointer-tilt))) translate3d(0, calc((1 - var(--landing-section-progress, 0)) * 5px), 0) !important;
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-pointer.is-pointer-active {
  border-color: color-mix(in srgb, var(--portal-context) 58%, var(--portal-border));
  box-shadow: 0 16px 34px color-mix(in srgb, var(--portal-context) 16%, transparent), 0 0 0 3px color-mix(in srgb, var(--portal-brand) 11%, transparent);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-workflow ol::before {
  opacity: clamp(0, var(--landing-section-progress, 0), 1);
  transform: scaleY(clamp(0, var(--landing-section-progress, 0), 1));
  transition: opacity var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease), transform var(--portal-landing-scroll-scrub) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-workflow li,
.landing-motion-scroll[data-landing-scroll-motion="active"] .portal-landing-trust-grid > article {
  transition: transform var(--portal-landing-motion-ui) var(--portal-landing-motion-ease), border-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease), background-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease), box-shadow var(--portal-landing-motion-ui) var(--portal-landing-motion-ease);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-workflow li.landing-motion-pointer {
  transform: translate3d(calc((1 - var(--landing-section-progress, 0)) * 10px), 0, 0);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-workflow li.landing-motion-pointer.is-pointer-active {
  transform: translate3d(
    calc(((1 - var(--landing-section-progress, 0)) * 10px) + (var(--landing-pointer-x, 0) * 4px)),
    calc(var(--landing-pointer-y, 0) * -2px),
    0
  );
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .portal-landing-trust-grid > article.landing-motion-pointer {
  transform: translate3d(0, calc((1 - var(--landing-section-progress, 0)) * 8px), 0) scale(calc(.985 + (var(--landing-section-progress, 0) * .015)));
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .portal-landing-trust-grid > article.landing-motion-pointer.is-pointer-active {
  transform: translate3d(
    calc(var(--landing-pointer-x, 0) * 3px),
    calc(((1 - var(--landing-section-progress, 0)) * 8px) + (var(--landing-pointer-y, 0) * -3px)),
    0
  ) scale(calc(.985 + (var(--landing-section-progress, 0) * .015)));
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-workflow li:hover,
.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-workflow li:focus-within {
  transform: translate3d(6px, 0, 0);
  border-color: color-mix(in srgb, var(--portal-context) 38%, var(--portal-border));
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .portal-landing-trust-grid > article:hover,
.landing-motion-scroll[data-landing-scroll-motion="active"] .portal-landing-trust-grid > article:focus-within {
  transform: translate3d(0, -5px, 0);
  border-color: color-mix(in srgb, var(--portal-brand) 44%, var(--portal-border));
  box-shadow: var(--portal-elevation-2);
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-final {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.landing-motion-scroll[data-landing-scroll-motion="active"] .landing-motion-final::before {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: calc((var(--landing-scroll-progress, 0) * 130%) - 30%);
  width: 42%;
  height: 180%;
  background: linear-gradient(100deg, transparent, color-mix(in srgb, var(--portal-context) 12%, transparent), transparent);
  content: "";
  opacity: .5;
  pointer-events: none;
  transform: translateY(-50%) rotate(12deg);
  transition: left var(--portal-landing-scroll-scrub) linear;
}

@media (prefers-reduced-motion: reduce) {
  .landing-motion-scroll[data-landing-scroll-motion="active"] :is(
    .landing-scroll-scene,
    .portal-landing-hero-copy,
    .landing-motion-parallax,
    .landing-motion-pointer,
    .landing-motion-workflow li,
    .portal-landing-trust-grid > article,
    .landing-motion-final::before,
    .landing-motion-hero::after,
    .landing-motion-studios::before,
    .landing-motion-trust::before,
    .landing-motion-spotlights::before,
    .portal-landing-spotlight-preview.landing-motion-pointer,
    .portal-landing-spotlight-preview.landing-motion-pointer::before,
    .portal-landing-spotlight-preview.landing-motion-pointer::after
  ) {
    transition: none !important;
    transform: none !important;
  }
}

@media (max-width: 600px) {
  .portal-auth-page--access .portal-auth-brand strong {
    white-space: nowrap;
  }

  .portal-auth-page--access .portal-auth-brand small {
    display: none;
  }

  .portal-auth-page--access .portal-auth-back {
    min-width: 44px;
    padding-inline: 0;
    justify-content: center;
  }

  .portal-auth-page--access .portal-auth-back-label {
    display: none;
  }

  .portal-auth-page--access .portal-auth-locale-nav {
    gap: 0;
    margin-left: auto;
  }

  .portal-auth-page--access .portal-auth-locale-link {
    min-width: 44px;
    min-height: 44px;
    padding-inline: 0;
    font-size: 10px;
  }

  .portal-auth-page--access {
    width: 100%;
    padding-top: 16px;
    padding-bottom: 32px;
  }
  .portal-auth-page--access .portal-auth-header { padding-bottom: 12px; }
  .portal-auth-page--access .portal-auth-intro { gap: 8px; }
  .portal-auth-page--access .portal-auth-intro .portal-title { font-size: 32px; }
  .portal-auth-page--access .portal-auth-intro .portal-description {
    font-size: 14px;
    line-height: 1.5;
  }
  .portal-auth-page--access .portal-auth-card { padding: 16px; }
  .portal-auth-page--access .portal-auth-switch,
  .portal-auth-page--access .portal-auth-switch a,
  .portal-auth-page--access .portal-auth-primary .portal-form-footer > a,
  .portal-auth-page--access .portal-auth-primary .portal-form-footer > .portal-button--primary {
    min-height: 44px;
  }
  .portal-landing-nav,
  .portal-landing-hero,
  .portal-landing-section,
  .portal-landing-workflow,
  .portal-landing-trust,
  .portal-landing-footer {
    width: min(100% - 32px, 1216px);
  }
  .portal-landing-nav { min-height: 72px; }
  .portal-landing-nav-actions .portal-button { min-height: 44px; padding-inline: 10px; }
  .portal-landing-hero h1 { font-size: clamp(36px, 11vw, 46px); }
  .portal-landing-preview { min-height: auto; }
  .portal-landing-preview-body { min-height: 332px; padding: 20px; }
}

/* This final media override follows the desktop default in this final layer,
   preserving the 44px touch target inherited from the component catalogue. */
@media (max-width: 700px) {
  :root { --portal-control-height: 44px; }
}

/* Teal–Sky Product Redesign foundation rules.
   This intentionally sits after the legacy catalogue and the prior harmony
   layer. It owns only visual geometry and readable light-surface primitives;
   route, authority, job and provider state stay in their existing owners. */
.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) :is(
  .portal-card-title,
  .portal-summary-value,
  .portal-action-card-title,
  .portal-action-card-count,
  .portal-module-card-title,
  .portal-dashboard-draft strong,
  .portal-studio-card strong,
  .portal-section-heading h2,
  .portal-section-heading h3
) {
  color: var(--portal-ink);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) :is(
  .portal-card-subtitle,
  .portal-summary-key,
  .portal-action-card-body,
  .portal-action-card-link,
  .portal-module-card-footer,
  .portal-dashboard-draft small,
  .portal-studio-card p,
  .portal-studio-card .portal-badge,
  .portal-section-kicker
) {
  color: var(--portal-muted);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) :is(
  .portal-action-card-link,
  .portal-module-card-footer a,
  .portal-studio-card .portal-open-label
) {
  color: var(--portal-action);
}

@media (min-width: 921px) {
  .portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-header {
    padding-inline:
      max(var(--portal-desktop-page-padding), calc((100% - var(--portal-content-max-width)) / 2 + var(--portal-desktop-page-padding)));
  }
}

.portal-auth-context-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid var(--portal-border-strong);
  border-radius: 12px;
  color: var(--portal-action);
  background: var(--portal-surface-light);
}

.portal-auth-context-icon .portal-icon {
  width: 20px;
  height: 20px;
}

.portal-auth-context-kicker {
  margin: 0;
  color: var(--portal-action);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
}

.portal-auth-context-title {
  margin: -6px 0 0;
  color: var(--portal-ink);
  font-size: 20px;
  font-weight: 760;
  line-height: 1.32;
}

.portal-auth-context-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  color: var(--portal-muted);
  font-size: 14px;
  line-height: 1.55;
  list-style: none;
}

.portal-auth-context-list li {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
}

.portal-auth-context-list li::before {
  width: 7px;
  height: 7px;
  margin-top: .48em;
  border-radius: 50%;
  background: var(--portal-brand);
  content: "";
}

@media (max-width: 980px) {
  .portal-shell--auth .portal-main {
    width: min(100%, 560px);
    max-width: 560px;
  }

  .portal-auth-page--access .portal-auth-shell {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "intro" "card";
    gap: 20px;
  }

  .portal-auth-page--access .portal-auth-intro {
    justify-items: center;
    max-width: 480px;
    padding-top: 0;
    text-align: center;
  }

  .portal-auth-context { display: none; }
}

/* Signed Workspace shell alignment. */
.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) {
  grid-template-columns: 272px minmax(0, 1fr);
  min-width: 0;
  background: var(--portal-app-canvas);
}

.portal-workspace,
.portal-header,
.portal-main,
.portal-page {
  min-width: 0;
}

.portal-sidebar {
  height: 100dvh;
  padding:
    calc(16px + var(--portal-safe-top))
    12px
    calc(16px + var(--portal-safe-bottom));
  border-right-color: var(--portal-rail-border);
  background: var(--portal-rail);
  color: var(--portal-rail-text);
}

.portal-brand {
  margin: 0 8px 16px;
}

.portal-sidebar .portal-brand-name,
.portal-sidebar .portal-brand-copy {
  color: var(--portal-rail-text);
}

.portal-sidebar .portal-brand-caption,
.portal-sidebar .portal-bridge-mini span {
  color: var(--portal-rail-muted);
}

.portal-sidebar .portal-brand-mark {
  border-color: var(--portal-brand);
  background: var(--portal-brand);
  color: var(--portal-ink);
}

.portal-sidebar-action-row,
.portal-sidebar-search {
  margin-bottom: 12px;
}

.portal-sidebar-create,
.portal-sidebar-focus-toggle,
.portal-sidebar-search,
.portal-nav-summary,
.portal-nav-link,
.portal-sidebar-close,
.portal-menu-button,
.portal-pwa-install-trigger,
.portal-command-trigger,
.portal-session-chip,
.portal-button {
  min-height: 44px;
}

.portal-sidebar-create {
  border-color: var(--portal-action);
  background: var(--portal-action);
  color: var(--portal-on-action);
  box-shadow: none;
}

.portal-sidebar-create:hover,
.portal-sidebar-create:focus-visible {
  border-color: var(--portal-action-hover);
  background: var(--portal-action-hover);
  color: var(--portal-on-action);
  transform: none;
}

.portal-sidebar-create > span:first-child,
.portal-sidebar-focus-toggle,
.portal-sidebar-search {
  border-color: var(--portal-rail-border);
  background: var(--portal-rail-surface);
  color: var(--portal-rail-text);
}

.portal-sidebar-create > b { color: var(--portal-on-action); }

.portal-sidebar-create > span:first-child {
  color: var(--portal-brand);
}

.portal-header :is(.portal-menu-button, .portal-pwa-install-trigger, .portal-command-trigger, .portal-session-chip) {
  border-color: var(--portal-control-border);
  background: var(--portal-control-surface);
  color: var(--portal-ink);
}

.portal-header :is(.portal-command-trigger, .portal-pwa-install-trigger) > span:first-child {
  color: var(--portal-context);
}

.portal-sidebar-focus-toggle:hover,
.portal-sidebar-focus-toggle:focus-visible,
.portal-sidebar-search:hover,
.portal-sidebar-search:focus-visible {
  border-color: var(--portal-brand);
  background: var(--portal-rail-hover);
  color: var(--portal-rail-text);
  transform: none;
}

.portal-header :is(.portal-menu-button, .portal-pwa-install-trigger, .portal-command-trigger, .portal-session-chip):hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-ink);
  transform: none;
}

.portal-sidebar-search kbd {
  border-color: var(--portal-rail-border);
  background: var(--portal-rail);
  color: var(--portal-rail-muted);
}

.portal-command-trigger kbd {
  border-color: var(--portal-control-border);
  background: var(--portal-light-soft);
  color: var(--portal-muted);
}

.portal-nav {
  gap: 6px;
}

.portal-nav-group {
  padding-bottom: 6px;
  border-bottom-color: var(--portal-rail-border);
}

.portal-nav-group--current {
  border-bottom-color: var(--portal-border-strong);
}

.portal-nav-group--current .portal-nav-summary,
.portal-nav-group--current .portal-nav-label {
  color: var(--portal-nav-active-text);
}

.portal-nav-group--current .portal-nav-group-count {
  min-width: 2ch;
  color: var(--portal-nav-active-icon);
  font-variant-numeric: tabular-nums;
  text-align: end;
}

.portal-nav-summary {
  border-color: transparent;
  color: var(--portal-rail-muted);
}

.portal-nav-summary:hover,
.portal-nav-summary:focus-visible {
  border-color: var(--portal-rail-border);
  background: var(--portal-nav-hover-surface);
  color: var(--portal-rail-text);
}

.portal-nav-label,
.portal-nav-summary::before,
.portal-nav-group-count,
.portal-nav-count {
  color: var(--portal-rail-muted);
}

.portal-nav-link {
  gap: 10px;
  padding: 10px;
  border-color: transparent;
  color: var(--portal-rail-text);
}

.portal-nav-link:hover,
.portal-nav-link:focus-visible {
  border-color: var(--portal-rail-border);
  background: var(--portal-nav-hover-surface);
  color: var(--portal-rail-text);
}

.portal-nav-link[aria-current="page"] {
  border-color: color-mix(in srgb, var(--portal-context) 58%, var(--portal-rail-border));
  background: color-mix(in srgb, var(--portal-context) 20%, var(--portal-rail));
  color: var(--portal-nav-active-text);
}

.portal-nav-icon {
  color: var(--portal-rail-muted);
}

.portal-nav-link[aria-current="page"] .portal-nav-icon {
  color: var(--portal-nav-active-icon);
}

.portal-sidebar-foot {
  padding-top: 16px;
}

.portal-bridge-mini {
  border-color: var(--portal-rail-border);
  background: var(--portal-rail-surface);
  color: var(--portal-rail-text);
}

.portal-header {
  min-height: 64px;
  padding-inline: clamp(20px, 3vw, 40px);
  border-bottom-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-header-actions {
  min-width: 0;
  gap: 8px;
}

.portal-command-trigger {
  min-width: min(256px, 28vw);
}

.portal-crumbs {
  color: var(--portal-muted-strong);
}

.portal-crumbs span + span::before {
  color: var(--portal-muted);
}

.portal-session-avatar {
  background: var(--portal-light-soft);
  color: var(--portal-ink);
}

.portal-main {
  width: min(100%, 1600px);
  max-width: 1600px;
  padding: clamp(24px, 3vw, 40px);
}

.portal-page,
.portal-workspace-command-center {
  gap: clamp(20px, 2.4vw, 30px);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) :is(
  .portal-card,
  .portal-module-card,
  .portal-action-card,
  .portal-studio-card,
  .portal-dashboard-draft,
  .portal-data-table-wrap,
  .portal-page [class$="-card"]
) {
  border-color: var(--portal-border);
  border-radius: var(--portal-radius);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-card-header {
  gap: 16px;
  margin-bottom: 16px;
}

.portal-button {
  padding: 10px 14px;
  border-color: var(--portal-control-border);
  background: var(--portal-control-surface);
  color: var(--portal-ink);
  box-shadow: none;
  transition: border-color var(--portal-transition), background-color var(--portal-transition), color var(--portal-transition);
}

.portal-button:hover:not(:disabled),
.portal-button:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-control-hover);
  color: var(--portal-ink);
  transform: none;
}

.portal-button--primary {
  border-color: var(--portal-action);
  background: var(--portal-action);
  color: var(--portal-on-action);
}

.portal-button--primary:hover:not(:disabled),
.portal-button--primary:focus-visible {
  border-color: var(--portal-action-hover);
  background: var(--portal-action-hover);
  color: var(--portal-on-action);
}

.portal-button--quiet {
  border-color: var(--portal-control-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-button:disabled {
  border-color: var(--portal-control-disabled-border);
  background: var(--portal-control-disabled-surface);
  color: var(--portal-control-disabled-text);
}

.portal-data-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-data-table th,
.portal-data-table td {
  padding: 13px 16px;
  border-bottom-color: var(--portal-table-divider);
}

.portal-data-table th {
  color: var(--portal-muted);
}

.portal-data-table td {
  color: var(--portal-ink);
}

.portal-data-table tbody tr:hover {
  background: color-mix(in srgb, var(--portal-brand) 10%, var(--portal-surface-light));
}

.portal-badge {
  min-height: 26px;
  border-color: var(--portal-border);
  background: var(--portal-surface-strong);
  color: var(--portal-muted-strong);
}

.portal-badge[data-status="ready"],
.portal-badge[data-status="completed"],
.portal-badge[data-status="approved"],
.portal-badge[data-status="scheduled"],
.portal-badge[data-status="resolved"],
.portal-badge[data-status="closed"],
.portal-badge[data-status="done"],
.portal-badge[data-status="refunded"] {
  border-color: color-mix(in srgb, var(--portal-success) 54%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-success) 12%, var(--portal-surface));
  color: var(--portal-success);
}

.portal-badge[data-status="draft"],
.portal-badge[data-status="awaiting_confirm"],
.portal-badge[data-status="queued"],
.portal-badge[data-status="processing"],
.portal-badge[data-status="read_only"],
.portal-badge[data-status="new"],
.portal-badge[data-status="reviewing"],
.portal-badge[data-status="planned"],
.portal-badge[data-status="in_progress"] {
  border-color: color-mix(in srgb, var(--portal-info) 54%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-info) 12%, var(--portal-surface));
  color: var(--portal-info);
}

.portal-badge[data-status="guarded"],
.portal-badge[data-status="disabled"],
.portal-badge[data-status="review"],
.portal-badge[data-status="waiting_user"],
.portal-badge[data-status="waiting_provider"],
.portal-badge[data-status="refund_pending"] {
  border-color: color-mix(in srgb, var(--portal-warning) 54%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-warning) 12%, var(--portal-surface));
  color: var(--portal-warning);
}

.portal-badge[data-status="failed"],
.portal-badge[data-status="error"],
.portal-badge[data-status="cancelled"] {
  border-color: color-mix(in srgb, var(--portal-danger) 54%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-danger) 12%, var(--portal-surface));
  color: var(--portal-danger);
}

.portal-badge[data-status="archived"],
.portal-badge[data-status="read"],
.portal-badge[data-status="dismissed"],
.portal-badge[data-status="backlog"] {
  border-color: var(--portal-border);
  background: var(--portal-surface-strong);
  color: var(--portal-muted);
}

.portal-workspace-command-center .portal-dashboard-overview {
  gap: 20px;
  padding: clamp(22px, 3vw, 32px);
  border-color: var(--portal-border);
  border-radius: var(--portal-radius-lg);
  background: var(--portal-surface-strong);
}

.portal-workspace-command-center .portal-dashboard-overview h1,
.portal-workspace-command-center .portal-dashboard-overview-stats dd {
  color: var(--portal-text);
}

.portal-workspace-command-center .portal-dashboard-overview p,
.portal-workspace-command-center .portal-dashboard-overview-stats dt,
.portal-workspace-command-center .portal-dashboard-overview-stats span {
  color: var(--portal-muted-strong);
}

.portal-workspace-command-center .portal-dashboard-overview-actions,
.portal-command-center-lane-actions {
  gap: 8px;
}

.portal-workspace-command-center .portal-dashboard-overview-stats {
  gap: 8px;
}

.portal-workspace-command-center .portal-dashboard-overview-stats > div {
  padding: 14px;
  border-color: var(--portal-border);
  border-radius: var(--portal-radius-sm);
  background: var(--portal-surface);
}

.portal-command-center-lanes {
  grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr);
  gap: 18px;
}

.portal-command-center-lane,
.portal-command-center-canonical {
  gap: 16px;
  padding: clamp(20px, 2.2vw, 28px);
  border-color: var(--portal-border);
  border-radius: var(--portal-radius-lg);
  background: var(--portal-surface);
}

.portal-command-center-lane--account,
.portal-command-center-canonical[data-state="loading"],
.portal-command-center-canonical[data-state="failed"],
.portal-command-center-canonical[data-state="guarded"] {
  background: var(--portal-surface-strong);
}

.portal-command-center-canonical[data-state="ready"] {
  border-color: var(--portal-border-strong);
}

.portal-command-center-lane-heading,
.portal-command-center-state {
  gap: 12px;
}

.portal-command-center-lane-heading .portal-module-icon,
.portal-command-center-state .portal-state-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-info);
}

.portal-command-center-account-facts > div,
.portal-command-center-lane--work .portal-dashboard-draft,
.portal-command-center-canonical .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface);
}

.portal-command-center-lane--work .portal-dashboard-draft:hover,
.portal-command-center-lane--work .portal-dashboard-draft:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  transform: none;
}

@media (max-width: 1180px) and (min-width: 701px) {
  .portal-command-trigger {
    width: 44px;
    min-width: 44px;
    justify-content: center;
    padding-inline: 8px;
  }

  .portal-command-trigger-label,
  .portal-command-trigger kbd {
    display: none;
  }

  .portal-header-actions .portal-theme-toggle-label { display: none; }

  .portal-pwa-install-label { display: none; }

  .portal-header-actions .portal-theme-toggle,
  .portal-pwa-install-trigger {
    width: 44px;
    min-width: 44px;
    justify-content: center;
    padding-inline: 8px;
  }

  .portal-session-chip {
    max-width: 190px;
  }
}

@media (max-width: 1040px) {
  .portal-command-center-lanes {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 980px) {
  .portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) {
    display: block;
  }

  .portal-sidebar {
    width: min(304px, calc(100vw - 42px));
    border-right-color: var(--portal-rail-border);
    background: var(--portal-rail);
  }
}

@media (max-width: 700px) {
  .portal-header {
    min-height: 64px;
    gap: 8px;
    padding:
      calc(10px + var(--portal-safe-top))
      calc(16px + var(--portal-safe-right))
      10px
      calc(16px + var(--portal-safe-left));
  }

  .portal-header-actions {
    gap: 8px;
  }

  .portal-command-trigger,
  .portal-pwa-install-trigger,
  .portal-menu-button {
    width: 44px;
    min-width: 44px;
    padding-inline: 8px;
  }

  .portal-command-trigger-label,
  .portal-command-trigger kbd,
  .portal-pwa-install-label {
    display: none;
  }

  .portal-header-actions > .portal-badge {
    display: none;
  }

  .portal-session-chip {
    max-width: min(154px, 38vw);
  }

  .portal-main {
    width: 100%;
    padding:
      20px
      calc(16px + var(--portal-safe-right))
      calc(104px + var(--portal-safe-bottom))
      calc(16px + var(--portal-safe-left));
    padding-bottom: calc(104px + var(--portal-safe-bottom));
  }

  .portal-mobile-nav {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    padding:
      8px
      max(8px, calc(8px + var(--portal-safe-right)))
      calc(8px + var(--portal-safe-bottom))
      max(8px, calc(8px + var(--portal-safe-left)));
    border-top-color: var(--portal-border);
    background: var(--portal-surface-light);
    box-shadow: none;
    backdrop-filter: none;
  }

  .portal-mobile-nav-link {
    min-height: 54px;
    gap: 4px;
    padding: 6px 2px;
    border-color: transparent;
    color: var(--portal-muted);
  }

  .portal-mobile-nav-link:hover,
  .portal-mobile-nav-link:focus-visible {
    border-color: var(--portal-border);
    background: var(--portal-light-hover-surface);
    color: var(--portal-ink);
  }

  .portal-mobile-nav-link[aria-current="page"] {
    border-color: color-mix(in srgb, var(--portal-context) 58%, var(--portal-border));
    background: color-mix(in srgb, var(--portal-context) 12%, var(--portal-surface-light));
    color: var(--portal-action);
  }

.portal-mobile-nav-icon {
  color: var(--portal-muted);
}

.portal-mobile-nav-link[aria-current="page"] .portal-mobile-nav-icon {
  color: var(--portal-context);
  }

  .portal-workspace-command-center .portal-dashboard-overview,
  .portal-command-center-lane,
  .portal-command-center-canonical {
    padding: 18px;
    border-radius: var(--portal-radius-lg);
  }

  .portal-workspace-command-center .portal-dashboard-overview-actions {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-workspace-command-center .portal-dashboard-overview-actions .portal-button,
  .portal-command-center-lane-actions .portal-button {
    width: 100%;
    min-height: 44px;
    justify-content: center;
  }

  .portal-command-center-lane-actions {
    width: 100%;
  }
}

@media (max-width: 460px) {
  .portal-crumbs {
    display: block;
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .portal-crumbs span:not(:last-child) {
    display: none;
  }

  .portal-crumbs span:last-child::before {
    display: none;
  }

  .portal-session-chip {
    width: 44px;
    min-width: 44px;
    padding-inline: 8px;
  }

  .portal-session-copy {
    display: none;
  }

  .portal-workspace-command-center .portal-dashboard-overview-stats {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-sidebar-create,
  .portal-sidebar-focus-toggle,
  .portal-sidebar-search,
  .portal-nav-summary,
  .portal-nav-link,
  .portal-button,
  .portal-mobile-nav-link,
  .portal-command-center-lane--work .portal-dashboard-draft {
    transition: none;
  }
}

/* Music and SFX direction pickers were authored before the light workspace
   canvas. Keep their text, selected states and guard details readable without
   changing their form semantics or any provider/job boundary. */
.portal-page.portal-music-directions .portal-music-directions-intro,
.portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-strong);
  box-shadow: none;
}

.portal-page.portal-music-directions :is(.portal-music-directions-intro, .portal-music-directions-form, .portal-music-directions-boundary, .portal-music-directions-result) h2,
.portal-page.portal-sfx-cue-sheet :is(.portal-sfx-cue-sheet-intro, .portal-sfx-cue-sheet-form, .portal-sfx-cue-sheet-boundary, .portal-sfx-cue-sheet-result) h2,
.portal-page.portal-music-directions .portal-music-directions-picker legend,
.portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-picker legend {
  color: var(--portal-ink);
}

.portal-page.portal-music-directions :is(.portal-music-directions-intro p, .portal-music-directions-intro dd, .portal-music-directions-selection, .portal-music-directions-list p, .portal-music-directions-list dt, .portal-music-directions-list dd, .portal-music-directions-list pre),
.portal-page.portal-sfx-cue-sheet :is(.portal-sfx-cue-sheet-intro p, .portal-sfx-cue-sheet-intro dd, .portal-sfx-cue-sheet-selection, .portal-sfx-cue-sheet-list p, .portal-sfx-cue-sheet-list dt, .portal-sfx-cue-sheet-list dd, .portal-sfx-cue-sheet-list pre) {
  color: var(--portal-muted);
}

.portal-page.portal-music-directions :is(.portal-music-directions-intro dl > div, .portal-music-directions-guard-list span, .portal-music-directions-list li, .portal-music-directions-list dl > div),
.portal-page.portal-sfx-cue-sheet :is(.portal-sfx-cue-sheet-intro dl > div, .portal-sfx-cue-sheet-guard-list span, .portal-sfx-cue-sheet-list li, .portal-sfx-cue-sheet-list dl > div) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-music-directions :is(.portal-music-directions-intro dt, .portal-music-directions-guard-list strong, .portal-music-directions-list-head strong),
.portal-page.portal-sfx-cue-sheet :is(.portal-sfx-cue-sheet-intro dt, .portal-sfx-cue-sheet-guard-list strong, .portal-sfx-cue-sheet-list-head strong) {
  color: var(--portal-ink);
}

.portal-page.portal-music-directions .portal-music-directions-preset-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-preset-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-page.portal-music-directions .portal-music-directions-preset-card:hover,
.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-preset-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-page.portal-music-directions .portal-music-directions-preset-card[data-selected="true"],
.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-preset-card[data-selected="true"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-soft);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--portal-brand) 19%, transparent);
}

.portal-page.portal-music-directions .portal-music-directions-preset-copy strong {
  color: var(--portal-ink);
}

.portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-preset-copy strong {
  color: var(--portal-ink);
}

.portal-page.portal-music-directions .portal-music-directions-preset-copy small {
  color: var(--portal-muted);
}

.portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-preset-copy small {
  color: var(--portal-muted);
}

.portal-page.portal-music-directions :is(.portal-music-directions-preset-cue, .portal-music-directions-guard-list em, .portal-music-directions-meta span, .portal-music-directions-index, .portal-music-directions-list-head em),
.portal-page.portal-sfx-cue-sheet :is(.portal-sfx-cue-sheet-preset-cue, .portal-sfx-cue-sheet-guard-list em, .portal-sfx-cue-sheet-meta span, .portal-sfx-cue-sheet-index, .portal-sfx-cue-sheet-list-head em) {
  border-color: color-mix(in srgb, var(--portal-brand) 32%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-brand) 10%, var(--portal-surface-light));
  color: var(--portal-action);
}

.portal-page.portal-music-directions .portal-music-directions-radio,
.portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-radio {
  accent-color: var(--portal-action);
}

.portal-page.portal-music-directions .portal-music-directions-review,
.portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-review {
  border-color: color-mix(in srgb, var(--portal-danger) 34%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-danger) 8%, var(--portal-surface-light));
}

.portal-page.portal-music-directions .portal-music-directions-review ul,
.portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-review ul {
  color: var(--portal-muted);
}

.portal-page.portal-music-directions .portal-music-directions-review strong,
.portal-page.portal-sfx-cue-sheet .portal-sfx-cue-sheet-review strong {
  color: var(--portal-danger);
}


/* Final public-companion layout. These rules deliberately sit after the
   legacy landing styles so the public entry uses the same quiet teal–cyan
   system as the signed Portal without inheriting its dark marketing effects. */
.portal-shell--landing,
.portal-body--landing,
.portal-landing {
  background: var(--portal-light-canvas);
  color: var(--portal-ink);
}

.portal-landing {
  overflow: clip;
}

/* Landing anchor continuity keeps native deep links, browser history and
   keyboard navigation intact. Motion-capable visitors receive a gentle scroll
   while every named section reserves room for the compact sticky header. */
.portal-landing [data-landing-anchor-target] {
  scroll-margin-block-start: var(--portal-landing-anchor-gap);
}

@media (prefers-reduced-motion: no-preference) {
  html.portal-landing-anchor-motion {
    scroll-behavior: smooth;
    scroll-padding-block-start: calc(var(--portal-landing-anchor-offset) + var(--portal-safe-top));
  }
}

.portal-landing-public-container {
  --portal-public-content-width: min(1240px, calc(100% - 48px - var(--portal-safe-left) - var(--portal-safe-right)));
}

.portal-landing-header {
  border-bottom: 1px solid var(--portal-landing-divider);
  background: var(--portal-light-canvas);
}

.portal-landing-public-container :is(
  .portal-landing-nav,
  .portal-landing-hero,
  .portal-landing-section,
  .portal-landing-workflow,
  .portal-landing-trust,
  .portal-landing-final,
  .portal-landing-footer
) {
  width: var(--portal-public-content-width);
  margin-inline: auto;
}

.portal-landing-nav {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  min-height: 80px;
  padding-block: max(12px, var(--portal-safe-top)) 12px;
  border: 0;
}

.portal-landing-brand {
  gap: 10px;
}

.portal-landing-brand .portal-brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 12px;
}

.portal-landing-brand strong {
  font-size: 14px;
  letter-spacing: -.01em;
}

.portal-landing-brand small {
  font-size: 10px;
  letter-spacing: .045em;
}

.portal-landing-nav-links,
.portal-landing-nav-actions,
.portal-landing-locale-nav,
.portal-landing-hero-actions,
.portal-landing-proof,
.portal-landing-footer > div {
  display: flex;
  align-items: center;
}

.portal-landing-nav-links {
  justify-content: center;
  gap: 24px;
  margin-left: 0;
  font-size: 13px;
}

.portal-landing-nav-links a,
.portal-landing-footer a {
  color: var(--portal-light-action);
}

.portal-landing-nav-links a:hover,
.portal-landing-nav-links a:focus-visible {
  color: var(--portal-accent-deep);
}

.portal-landing-nav-actions {
  justify-content: flex-end;
  gap: 8px;
}

.portal-landing-locale-nav {
  gap: 2px;
  padding: 2px;
  border: 1px solid var(--portal-light-border);
  border-radius: var(--portal-radius-sm);
  background: var(--portal-light-surface);
}

.portal-landing-locale-link {
  display: inline-grid;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  padding-inline: 8px;
  border-radius: 7px;
  color: var(--portal-light-action);
  font-size: 12px;
  font-weight: 760;
  line-height: 1;
  transition: background var(--portal-transition), color var(--portal-transition);
}

.portal-landing-locale-link:hover,
.portal-landing-locale-link[aria-current="true"] {
  background: var(--portal-light-accent-soft);
  color: var(--portal-accent-deep);
}

.portal-landing-nav-primary-compact {
  display: none;
  white-space: nowrap;
}

.portal-landing .portal-button {
  min-height: 44px;
  padding-inline: 15px;
}

.portal-landing-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, .92fr);
  gap: clamp(40px, 7vw, 88px);
  align-items: center;
  padding-block: clamp(64px, 9vw, 112px) clamp(72px, 10vw, 124px);
}

.portal-landing-hero-stage {
  position: relative;
  min-width: 0;
}

.portal-landing-hero-stage::before {
  position: absolute;
  z-index: 0;
  width: min(88%, 430px);
  height: min(88%, 430px);
  border: 1px solid var(--portal-light-border);
  border-radius: 50%;
  content: "";
  inset: auto auto -8% -8%;
  pointer-events: none;
}

.portal-landing-product-surface {
  position: relative;
  z-index: 1;
}

.portal-landing-product-surface-head {
  display: flex;
  align-items: center;
}

.portal-landing-product-surface-copy {
  margin: -8px 0 0;
  color: var(--portal-light-muted);
  font-size: 12px;
  line-height: 1.55;
}

.portal-landing-product-surface-flow {
  position: relative;
}

.portal-landing-hero-stage-label {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  margin: 14px 0 0 12px;
  color: var(--portal-light-muted);
  font-size: 11px;
  font-weight: 720;
}

.portal-landing-hero-stage-label svg {
  width: var(--portal-icon-sm);
  height: var(--portal-icon-sm);
  color: var(--portal-accent-deep);
}

.portal-landing-hero-copy {
  max-width: 680px;
}

.portal-landing-hero h1 {
  max-width: 730px;
  margin: 0 0 20px;
  font-size: clamp(52px, 5vw, 64px);
  line-height: 1.03;
  letter-spacing: -.05em;
}

.portal-landing-hero p,
.portal-landing-section-heading p,
.portal-landing-workflow p,
.portal-landing-trust p,
.portal-landing-final p {
  max-width: 65ch;
  font-size: 16px;
  line-height: 1.7;
}

/* This sentence belongs to the compact product preview, not the editorial
   hero copy. Keep the preview's denser type scale when the general hero rule
   above is applied. */
.portal-landing-hero .portal-landing-product-surface-copy {
  font-size: 12px;
  line-height: 1.55;
}

.portal-landing-hero-actions {
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.portal-landing-hero-actions .portal-button,
.portal-landing-final .portal-button {
  gap: 9px;
  font-size: 13px;
}

.portal-landing-proof {
  flex-wrap: wrap;
  gap: 10px 18px;
  margin: 26px 0 0;
  padding: 0;
  color: var(--portal-light-muted);
  list-style: none;
  font-size: 12px;
  font-weight: 690;
}

.portal-landing-proof li {
  display: inline-flex;
  gap: 7px;
  align-items: center;
}

.portal-landing-proof svg,
.portal-landing-trust-icon svg,
.portal-landing-preview-callout svg,
.portal-landing-studio-icon svg,
.portal-landing-studio em svg {
  width: 1em;
  height: 1em;
}

.portal-landing-proof li > span:first-child,
.portal-landing-studio em,
.portal-landing-trust-icon,
.portal-landing-preview-callout > span {
  color: var(--portal-accent-deep);
}

.portal-landing-preview {
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--portal-landing-preview-border);
  border-radius: 18px;
  background: var(--portal-light-surface);
  box-shadow: var(--portal-shadow);
  transform: none;
}

.portal-landing-preview::after,
.portal-landing-studio::before {
  display: none;
}

.portal-landing-preview-bar {
  min-height: 48px;
  padding-inline: 18px;
  border-bottom: 1px solid var(--portal-light-border-subtle);
  border-radius: 0;
  background: var(--portal-light-soft);
}

.portal-landing-preview-bar span {
  width: 8px;
  height: 8px;
  background: var(--portal-light-muted);
}

.portal-landing-preview-bar span:first-child { background: var(--portal-danger); }
.portal-landing-preview-bar span:nth-child(2) { background: var(--portal-warning); }
.portal-landing-preview-bar span:nth-child(3) { background: var(--portal-success); }
.portal-landing-preview-bar strong { color: var(--portal-light-action); }

.portal-landing-preview-body {
  gap: 22px;
  min-height: 364px;
  padding: 28px;
  border-radius: 0;
  background: var(--portal-light-surface);
}

.portal-landing-preview-heading {
  color: var(--portal-ink);
}

.portal-landing-preview-heading b {
  border-color: var(--portal-light-accent-border);
  background: var(--portal-light-accent-soft);
  color: var(--portal-accent-deep);
}

.portal-landing-preview-lines i {
  height: 10px;
  background: var(--portal-light-border-subtle);
}

.portal-landing-preview-steps {
  gap: 8px;
  color: var(--portal-light-muted);
}

.portal-landing-preview-steps span {
  display: grid;
  gap: 4px;
  padding: 11px 4px;
  border-color: var(--portal-light-border-subtle);
  background: var(--portal-light-hover-surface);
}

.portal-landing-preview-steps span.is-active {
  border-color: var(--portal-light-accent-border);
  background: var(--portal-light-accent-soft);
  color: var(--portal-accent-deep);
}

.portal-landing-preview-steps b {
  font-size: 12px;
}

.portal-landing-preview-steps small {
  margin-top: 0;
  font-size: 9px;
}

.portal-landing-preview-callout {
  align-items: center;
  padding: 14px;
  border-color: var(--portal-landing-callout-border);
  background: var(--portal-landing-callout-surface);
}

.portal-landing-preview-callout > span {
  display: grid;
  width: 34px;
  min-width: 34px;
  height: 34px;
  place-items: center;
  font-size: 17px;
}

.portal-landing-preview-callout p {
  max-width: none;
  font-size: 12px;
  line-height: 1.55;
}

.portal-landing-section {
  padding-bottom: clamp(72px, 9vw, 116px);
}

.portal-landing-feature-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: var(--portal-public-content-width);
  margin: 0 auto clamp(72px, 9vw, 116px);
  border-top: 1px solid var(--portal-light-border);
  border-bottom: 1px solid var(--portal-light-border);
}

.portal-landing-feature-strip article {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 13px;
  align-items: start;
  min-width: 0;
  padding: 24px clamp(16px, 2.2vw, 30px);
}

.portal-landing-feature-strip article + article {
  border-left: 1px solid var(--portal-light-border);
}

.portal-landing-feature-strip article > span {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 11px;
  background: var(--portal-light-accent-soft);
  color: var(--portal-accent-deep);
}

.portal-landing-feature-strip svg {
  width: 18px;
  height: 18px;
}

.portal-landing-feature-strip strong {
  display: block;
  color: var(--portal-ink);
  font-size: 14px;
  line-height: 1.35;
}

.portal-landing-feature-strip p {
  margin: 5px 0 0;
  color: var(--portal-light-muted);
  font-size: 12px;
  line-height: 1.55;
}

.portal-landing-spotlights {
  display: grid;
  gap: clamp(64px, 10vw, 132px);
  width: var(--portal-public-content-width);
  margin: 0 auto clamp(76px, 11vw, 144px);
}

.portal-landing-spotlight {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
  gap: clamp(36px, 8vw, 110px);
  align-items: center;
  min-width: 0;
}

.portal-landing-spotlight--audio {
  grid-template-columns: minmax(360px, 1.1fr) minmax(0, .9fr);
}

.portal-landing-spotlight--audio .portal-landing-spotlight-copy { order: 2; }
.portal-landing-spotlight--audio .portal-landing-spotlight-preview { order: 1; }

.portal-landing-spotlight-copy {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.portal-landing-spotlight h2 {
  max-width: 16ch;
  margin: 0;
  color: var(--portal-ink);
  font-size: clamp(32px, 3.6vw, 50px);
  line-height: 1.06;
  letter-spacing: -.05em;
}

.portal-landing-spotlight-copy > p {
  max-width: 58ch;
  margin: 0;
  color: var(--portal-light-muted);
  font-size: 15px;
  line-height: 1.7;
}

.portal-landing-spotlight-copy .portal-button {
  width: fit-content;
  gap: 8px;
  margin-top: 6px;
}

.portal-landing-spotlight-copy .portal-button > span:first-child {
  display: grid;
  place-items: center;
}

.portal-landing-spotlight-copy .portal-button svg {
  width: 16px;
  height: 16px;
}

.portal-landing-spotlight-preview {
  position: relative;
  display: grid;
  min-height: 330px;
  overflow: hidden;
  border: 1px solid var(--portal-light-border);
  border-radius: 22px;
  background: var(--portal-light-soft);
  box-shadow: 0 18px 42px color-mix(in srgb, var(--portal-info) 12%, transparent);
}

.portal-landing-spotlight-preview::before,
.portal-landing-spotlight-preview::after {
  position: absolute;
  border: 1px solid var(--portal-light-border);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.portal-landing-spotlight-preview::before {
  width: 250px;
  height: 250px;
  right: -92px;
  bottom: -108px;
}

.portal-landing-spotlight-preview::after {
  width: 134px;
  height: 134px;
  top: -62px;
  left: -54px;
}

.portal-landing-spotlight-content-preview,
.portal-landing-spotlight-audio-preview {
  position: relative;
  z-index: 1;
  display: grid;
  align-self: center;
  width: min(80%, 400px);
  margin: auto;
  border: 1px solid var(--portal-light-border);
  border-radius: 16px;
  background: var(--portal-light-surface);
  box-shadow: 0 14px 30px color-mix(in srgb, var(--portal-ink) 10%, transparent);
}

.portal-landing-spotlight-content-preview {
  gap: 12px;
  padding: 24px;
}

.portal-landing-spotlight-content-preview > span {
  display: block;
  width: 44%;
  height: 8px;
  border-radius: 999px;
  background: var(--portal-light-accent-soft);
}

.portal-landing-spotlight-content-preview > span:nth-child(2) { width: 76%; }
.portal-landing-spotlight-content-preview > span:nth-child(3) { width: 60%; }

.portal-landing-spotlight-content-preview i {
  display: block;
  height: 34px;
  border: 1px solid var(--portal-light-border);
  border-radius: 9px;
  background: var(--portal-light-soft);
}

.portal-landing-spotlight-content-preview i:nth-of-type(2) { width: 88%; }
.portal-landing-spotlight-content-preview i:nth-of-type(3) { width: 70%; }

.portal-landing-spotlight-audio-preview {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 9px;
  align-items: end;
  min-height: 185px;
  padding: 28px;
}

.portal-landing-spotlight-audio-preview span {
  display: block;
  border-radius: 999px 999px 8px 8px;
  background: var(--portal-brand);
}

.portal-landing-spotlight-audio-preview span:nth-child(1) { height: 30%; }
.portal-landing-spotlight-audio-preview span:nth-child(2) { height: 62%; }
.portal-landing-spotlight-audio-preview span:nth-child(3) { height: 44%; }
.portal-landing-spotlight-audio-preview span:nth-child(4) { height: 82%; }
.portal-landing-spotlight-audio-preview span:nth-child(5) { height: 56%; }
.portal-landing-spotlight-audio-preview span:nth-child(6) { height: 38%; }

.portal-landing-spotlight-audio-preview i {
  position: absolute;
  right: 28px;
  bottom: 24px;
  left: 28px;
  height: 2px;
  background: var(--portal-light-border);
}

.portal-landing-discovery-rail {
  display: grid;
  gap: 30px;
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid var(--portal-light-border);
  border-radius: 20px;
  background: var(--portal-light-soft);
}

.portal-landing-discovery-intro {
  display: flex;
  gap: 24px;
  align-items: end;
  justify-content: space-between;
}

.portal-landing-discovery-intro .portal-landing-section-heading {
  max-width: 680px;
}

.portal-landing-discovery-cta {
  flex: 0 0 auto;
  gap: 8px;
}

.portal-landing-section-heading {
  gap: 10px;
  max-width: 650px;
}

.portal-landing-section-heading > span,
.portal-landing-trust-copy > span,
.portal-landing-kicker {
  color: var(--portal-accent-deep);
  font-size: 11px;
  font-weight: 810;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.portal-landing-section h2,
.portal-landing-workflow h2,
.portal-landing-trust h2,
.portal-landing-final h2 {
  margin: 0;
  color: var(--portal-ink);
  font-size: clamp(32px, 3.4vw, 48px);
  line-height: 1.08;
  letter-spacing: -.045em;
}

.portal-landing-studios {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 30px;
}

.portal-landing-discovery-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0;
}

.portal-landing-studio {
  position: relative;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: 13px;
  min-width: 0;
  min-height: 248px;
  padding: 20px;
  overflow: visible;
  border-color: var(--portal-light-border);
  border-radius: var(--portal-radius-lg);
  background: var(--portal-light-surface);
  box-shadow: none;
  transition: border-color var(--portal-transition), background var(--portal-transition), box-shadow var(--portal-transition);
}

.portal-landing-discovery-list .portal-landing-studio {
  min-height: 44px;
  min-height: max(44px, 226px);
  padding: 18px;
}

.portal-landing-discovery-list .portal-landing-studio:focus-visible {
  border-color: var(--portal-focus);
  outline: 3px solid color-mix(in srgb, var(--portal-focus) 30%, transparent);
  outline-offset: 3px;
}

.portal-landing-studio-index {
  position: absolute;
  top: 20px;
  right: 20px;
  color: var(--portal-light-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
}

.portal-landing-studio:hover,
.portal-landing-studio:focus-visible {
  border-color: var(--portal-landing-studio-hover-border);
  background: var(--portal-light-hover-surface);
  box-shadow: 0 12px 28px color-mix(in srgb, var(--portal-info) 13%, transparent);
  transform: none;
}

.portal-landing-studio-icon {
  width: 44px;
  height: 44px;
  border-radius: 13px;
  background: var(--portal-light-accent-soft);
  box-shadow: none;
  color: var(--portal-accent-deep);
  font-size: 20px;
}

.portal-landing-studio--violet .portal-landing-studio-icon,
.portal-landing-studio--amber .portal-landing-studio-icon,
.portal-landing-studio--rose .portal-landing-studio-icon,
.portal-landing-studio--mint .portal-landing-studio-icon {
  background: var(--portal-light-accent-soft);
  color: var(--portal-accent-deep);
}

.portal-landing-studio strong {
  color: var(--portal-ink);
  font-size: 18px;
  line-height: 1.25;
}

.portal-landing-studio > span:not(.portal-landing-studio-icon) {
  color: var(--portal-light-muted);
  font-size: 13px;
  line-height: 1.6;
}

.portal-landing-studio em {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  margin-top: 0;
  font-size: 12px;
  font-style: normal;
  font-weight: 760;
}

.portal-landing-workflow {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  gap: clamp(32px, 7vw, 92px);
  align-items: start;
  padding: clamp(30px, 5vw, 64px);
  border-color: var(--portal-light-border);
  border-radius: 20px;
  background: var(--portal-light-soft);
}

.portal-landing-workflow > div {
  display: grid;
  gap: 15px;
}

.portal-landing-workflow ol {
  gap: 0;
}

.portal-landing-workflow li {
  grid-template-columns: 50px minmax(0, 1fr);
  gap: 14px;
  padding: 16px 0;
  border-bottom-color: var(--portal-light-border);
}

.portal-landing-workflow li > span {
  color: var(--portal-accent-deep);
}

.portal-landing-workflow li strong {
  color: var(--portal-ink);
  font-size: 15px;
}

.portal-landing-workflow li p {
  margin-top: 4px;
  font-size: 13px;
}

.portal-landing-trust {
  display: grid;
  grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr);
  gap: clamp(32px, 7vw, 92px);
  align-items: center;
  padding-block: clamp(78px, 10vw, 132px);
}

.portal-landing-trust-copy {
  display: grid;
  gap: 13px;
}

.portal-landing-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.portal-landing-trust-grid article {
  min-height: 196px;
  padding: 18px;
  border-color: var(--portal-light-border);
  border-radius: var(--portal-radius);
  background: var(--portal-light-surface);
}

.portal-landing-trust-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  background: var(--portal-light-accent-soft);
  font-size: 18px;
}

.portal-landing-trust-grid strong {
  margin-top: 24px;
  color: var(--portal-ink);
  font-size: 14px;
  line-height: 1.3;
}

.portal-landing-trust-grid p {
  margin-top: 7px;
  font-size: 12px;
  line-height: 1.58;
}

.portal-landing-final {
  display: flex;
  gap: 28px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(64px, 9vw, 108px);
  padding: clamp(28px, 5vw, 52px);
  border-radius: 20px;
  background: var(--portal-ink);
}

.portal-landing-final h2 {
  max-width: 18ch;
  color: var(--portal-light-surface);
  font-size: clamp(28px, 3vw, 42px);
}

.portal-landing-final p {
  margin: 10px 0 0;
  color: var(--portal-landing-footer-muted);
}

.portal-landing-final .portal-button {
  flex: 0 0 auto;
}

.portal-landing-footer {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  min-height: 104px;
  padding-block: 18px calc(18px + var(--portal-safe-bottom));
  border-top: 0;
  background: var(--portal-ink);
  color: var(--portal-landing-footer-muted);
}

.portal-landing-footer .portal-landing-brand strong {
  color: var(--portal-landing-footer-brand-text);
}

.portal-landing-footer .portal-landing-brand small,
.portal-landing-footer > span,
.portal-landing-footer a {
  color: var(--portal-landing-footer-muted);
}

.portal-landing-footer > div {
  gap: 16px;
}

.portal-landing-footer a:hover,
.portal-landing-footer a:focus-visible {
  color: var(--portal-light-surface);
}

@media (max-width: 1240px) {
  .portal-landing-nav {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .portal-landing-nav-links {
    display: none;
  }

  .portal-landing-nav-actions {
    margin-left: auto;
  }
}

@media (max-width: 920px) {
  .portal-landing-nav {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
  }

  .portal-landing-nav-links {
    display: none;
  }

  .portal-landing-nav-actions {
    margin-left: auto;
  }

  .portal-landing-hero,
  .portal-landing-workflow,
  .portal-landing-trust,
  .portal-landing-spotlight,
  .portal-landing-spotlight--audio {
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-landing-hero {
    gap: 40px;
  }

  .portal-landing-preview {
    width: min(100%, 620px);
  }

  .portal-landing-hero-stage {
    width: min(100%, 620px);
  }

  .portal-landing-trust-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .portal-landing-discovery-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-landing-spotlight--audio .portal-landing-spotlight-copy,
  .portal-landing-spotlight--audio .portal-landing-spotlight-preview {
    order: initial;
  }

  .portal-landing-spotlight-preview {
    width: min(100%, 620px);
  }
}

@media (max-width: 600px) {
  .portal-landing-public-container {
    --portal-public-content-width: calc(100% - 32px - var(--portal-safe-left) - var(--portal-safe-right));
  }

  .portal-landing-nav {
    gap: 10px;
    min-height: 72px;
  }

  .portal-landing-brand strong {
    font-size: 13px;
  }

  .portal-landing-brand small {
    font-size: 8px;
  }

  .portal-landing-nav-actions {
    gap: 5px;
  }

  .portal-landing-nav-actions > .portal-button--quiet {
    display: none;
  }

  .portal-landing-nav-primary {
    gap: 6px;
    padding-inline: 10px;
  }

  .portal-landing-nav-primary-full {
    display: none;
  }

  .portal-landing-nav-primary-compact {
    display: inline;
  }

  .portal-landing-locale-link {
    min-width: 36px;
    padding-inline: 5px;
    font-size: 11px;
  }

  .portal-landing .portal-button {
    padding-inline: 11px;
  }

  .portal-landing-hero {
    gap: 32px;
    padding-block: 48px 68px;
  }

  .portal-landing-hero h1 {
    font-size: clamp(36px, 10.5vw, 46px);
  }

  .portal-landing-hero p,
  .portal-landing-section-heading p,
  .portal-landing-workflow p,
  .portal-landing-trust p,
  .portal-landing-final p {
    font-size: 15px;
  }

  .portal-landing-proof {
    display: grid;
    gap: 9px;
  }

  .portal-landing-preview-body {
    min-height: 326px;
    padding: 20px;
  }

  .portal-landing-discovery-rail {
    gap: 24px;
    padding: 24px 20px;
  }

  .portal-landing-feature-strip {
    grid-template-columns: minmax(0, 1fr);
    margin-bottom: 72px;
  }

  .portal-landing-feature-strip article {
    padding: 18px 0;
  }

  .portal-landing-feature-strip article + article {
    border-top: 1px solid var(--portal-light-border);
    border-left: 0;
  }

  .portal-landing-spotlights {
    gap: 72px;
    margin-bottom: 88px;
  }

  .portal-landing-spotlight {
    gap: 28px;
  }

  .portal-landing-spotlight h2 {
    font-size: 34px;
  }

  .portal-landing-spotlight-copy > p {
    font-size: 15px;
  }

  .portal-landing-spotlight-preview {
    min-height: 260px;
    border-radius: var(--portal-radius-lg);
  }

  .portal-landing-spotlight-content-preview,
  .portal-landing-spotlight-audio-preview {
    width: min(84%, 400px);
  }

  .portal-landing-discovery-intro {
    display: grid;
    gap: 18px;
    align-items: start;
  }

  .portal-landing-discovery-cta {
    width: fit-content;
  }

  .portal-landing-preview-steps {
    gap: 5px;
  }

  .portal-landing-preview-steps span {
    padding-inline: 2px;
  }

  .portal-landing-section {
    padding-bottom: 72px;
  }

  .portal-landing-section h2,
  .portal-landing-workflow h2,
  .portal-landing-trust h2 {
    font-size: 32px;
  }

  .portal-landing-studios {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 26px 0 0;
    padding: 0;
    overflow: visible;
  }

  .portal-landing-discovery-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-landing-studio {
    width: auto;
    min-width: 0;
    min-height: 0;
  }

  .portal-landing-discovery-list .portal-landing-studio {
    min-height: 0;
  }

  .portal-landing-workflow {
    gap: 26px;
    padding: 24px 20px;
    border-radius: var(--portal-radius-lg);
  }

  .portal-landing-trust {
    gap: 26px;
    padding-block: 72px;
  }

  .portal-landing-trust-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-landing-trust-grid article {
    min-height: 0;
  }

  .portal-landing-final {
    display: grid;
    gap: 22px;
    align-items: start;
    margin-bottom: 72px;
    padding: 28px 22px;
  }

  .portal-landing-final .portal-button {
    width: fit-content;
  }

  .portal-landing-footer {
    display: grid;
    gap: 16px;
    justify-content: start;
    min-height: 0;
    padding-top: 28px;
  }
}

/* Product Harmony -- final light teal-sky application layer. */
.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) {
  grid-template-columns: var(--portal-rail-width) minmax(0, 1fr);
}

.portal-main {
  width: min(100%, var(--portal-content-max-width));
  max-width: var(--portal-content-max-width);
  padding: var(--portal-desktop-page-padding);
}

.portal-page,
.portal-workspace-command-center {
  gap: var(--portal-section-gap);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) :is(
  .portal-workspace-setup-focus-card,
  .portal-workspace-setup-focus-icon,
  .portal-workspace-menu-group-head > span
) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-workspace-setup-focus-card:hover,
.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-workspace-setup-focus-card:focus-within,
.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-workspace-setup-focus-card:has(input:checked) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-workspace-setup-focus-card:focus-within {
  outline: 3px solid var(--portal-context);
  outline-offset: 2px;
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-workspace-setup-focus-icon {
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-workspace-menu-group-head > span {
  color: var(--portal-muted);
}

.portal-admin-home > .portal-admin-guard,
.portal-admin-home > .portal-admin-grid .portal-metric,
.portal-admin-work-queues,
.portal-admin-work-queue,
.portal-admin-authority,
.portal-admin-directory-group,
.portal-admin-directory-group > .portal-module-grid .portal-module-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-admin-home > .portal-admin-guard .portal-state h2,
.portal-admin-home > .portal-admin-grid .portal-metric strong,
.portal-admin-work-queues .portal-section-heading h2,
.portal-admin-work-queue strong,
.portal-admin-authority > summary,
.portal-admin-directory-group > summary,
.portal-admin-directory-group > summary strong {
  color: var(--portal-ink);
}

.portal-admin-home > .portal-admin-guard .portal-state p,
.portal-admin-home > .portal-admin-grid .portal-metric span,
.portal-admin-home > .portal-admin-grid .portal-metric em,
.portal-admin-work-queues .portal-section-heading p,
.portal-admin-work-queue small,
.portal-admin-directory-group > summary small {
  color: var(--portal-muted);
}

.portal-admin-work-queue:hover,
.portal-admin-work-queue:focus-visible,
.portal-admin-directory-group > summary:hover,
.portal-admin-authority > summary:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-admin-work-queue:focus-visible,
.portal-admin-authority > summary:focus-visible,
.portal-admin-directory-group > summary:focus-visible {
  outline: 3px solid var(--portal-context) !important;
  outline-offset: 2px;
}

.portal-admin-authority[open],
.portal-admin-directory-group[open] {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-strong);
}

.portal-admin-authority[open] > summary,
.portal-admin-directory-group[open] > summary {
  border-bottom-color: var(--portal-border);
}

.portal-admin-authority > .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-admin-authority > .portal-card .portal-card-title,
.portal-admin-authority > .portal-card .portal-summary-value {
  color: var(--portal-ink);
}

.portal-admin-authority > .portal-card .portal-card-subtitle,
.portal-admin-authority > .portal-card .portal-summary-key {
  color: var(--portal-muted);
}

.portal-admin-directory-group > .portal-module-grid .portal-module-card:hover,
.portal-admin-directory-group > .portal-module-grid .portal-module-card:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-start-guide {
  border-color: var(--portal-border);
  background: var(--portal-surface-strong);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-start-guide-step {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-start-guide-head h2,
.portal-start-guide-copy strong {
  color: var(--portal-ink);
}

.portal-start-guide-head p,
.portal-start-guide-copy p {
  color: var(--portal-muted);
}

.portal-start-guide-note,
.portal-start-guide-number {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-start-guide-copy small,
.portal-start-guide-copy em {
  color: var(--portal-action);
}

.portal-start-guide-step:hover,
.portal-start-guide-step:focus-visible {
  border-color: var(--portal-context);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
  transform: translateY(-2px);
}

.portal-start-guide-step:focus-visible {
  outline: 3px solid var(--portal-context) !important;
  outline-offset: 2px;
}

.portal-catalog-context {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-catalog-context strong {
  color: var(--portal-ink);
}

.portal-catalog-context p {
  color: var(--portal-muted);
}

.portal-catalog-context > .portal-module-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-catalog-context > .portal-badge {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

@media (max-width: 700px) {
  .portal-main {
    width: 100%;
    padding: var(--portal-mobile-page-padding)
      calc(var(--portal-mobile-page-padding) + var(--portal-safe-right))
      0
      calc(var(--portal-mobile-page-padding) + var(--portal-safe-left));
    padding-bottom: calc(var(--portal-mobile-content-inset) + var(--portal-safe-bottom));
  }

  .portal-workspace-command-center .portal-dashboard-overview-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Teal–Sky Product Redesign -- final semantic layer. */
.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) :is(
  .portal-card-title,
  .portal-summary-value,
  .portal-action-card-title,
  .portal-action-card-count,
  .portal-module-card-title,
  .portal-dashboard-draft strong,
  .portal-studio-card strong,
  .portal-section-heading h2,
  .portal-section-heading h3
) {
  color: var(--portal-ink);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) :is(
  .portal-card-subtitle,
  .portal-summary-key,
  .portal-action-card-body,
  .portal-action-card-link,
  .portal-module-card-footer,
  .portal-dashboard-draft small,
  .portal-studio-card p,
  .portal-studio-card .portal-badge,
  .portal-section-kicker
) {
  color: var(--portal-muted);
}

.portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) :is(
  .portal-action-card-link,
  .portal-module-card-footer a,
  .portal-studio-card .portal-open-label
) {
  color: var(--portal-action);
}

@media (min-width: 921px) {
  .portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) .portal-header {
    padding-inline:
      max(var(--portal-desktop-page-padding), calc((100% - var(--portal-content-max-width)) / 2 + var(--portal-desktop-page-padding)));
  }
}

@media (min-width: 1081px) {
  .portal-shell--auth .portal-main {
    width: min(100%, 1180px);
    max-width: 1180px;
  }

  .portal-auth-page--access {
    width: min(100%, 1180px);
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "header" "content";
    row-gap: clamp(28px, 4vw, 52px);
    padding: clamp(28px, 4vw, 52px) 0 clamp(48px, 7vw, 80px);
  }

  .portal-auth-page--access .portal-auth-shell {
    display: grid;
    grid-area: content;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 480px);
    grid-template-areas: "intro card";
    align-items: start;
    gap: clamp(48px, 7vw, 104px);
  }

  .portal-auth-page--access .portal-auth-intro {
    justify-items: start;
    gap: 18px;
    max-width: 500px;
    padding-top: clamp(20px, 4vw, 58px);
    text-align: left;
  }

  .portal-auth-page--access .portal-auth-intro .portal-title {
    max-width: 14ch;
    font-size: clamp(38px, 4vw, 56px);
    letter-spacing: -.05em;
  }

  .portal-auth-page--access .portal-auth-intro .portal-description {
    max-width: 42ch;
    font-size: 16px;
    line-height: 1.7;
  }

  .portal-auth-context {
    display: grid;
    gap: 14px;
    width: min(100%, 420px);
    margin-top: 18px;
    padding: 20px;
    border: 1px solid var(--portal-border);
    border-radius: var(--portal-radius-lg);
    background: var(--portal-surface-soft);
  }
}

.portal-auth-context-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid var(--portal-border-strong);
  border-radius: 12px;
  color: var(--portal-action);
  background: var(--portal-surface-light);
}

.portal-auth-context-icon .portal-icon {
  width: 20px;
  height: 20px;
}

.portal-auth-context-kicker {
  margin: 0;
  color: var(--portal-action);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
}

.portal-auth-context-title {
  margin: -6px 0 0;
  color: var(--portal-ink);
  font-size: 20px;
  font-weight: 760;
  line-height: 1.32;
}

.portal-auth-context-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  color: var(--portal-muted);
  font-size: 14px;
  line-height: 1.55;
  list-style: none;
}

.portal-auth-context-list li {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
}

.portal-auth-context-list li::before {
  width: 7px;
  height: 7px;
  margin-top: .48em;
  border-radius: 50%;
  background: var(--portal-brand);
  content: "";
}

@media (max-width: 1080px) {
  .portal-shell--auth .portal-main {
    width: min(100%, 560px);
    max-width: 560px;
  }

  .portal-auth-page--access .portal-auth-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "intro" "card";
    gap: 20px;
  }

  .portal-auth-page--access .portal-auth-intro {
    justify-items: center;
    max-width: 480px;
    padding-top: 0;
    text-align: center;
  }

  .portal-auth-context { display: none; }
}

@media (max-width: 390px) {
  .portal-auth-page--access .portal-auth-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 8px;
    row-gap: 8px;
  }

  .portal-auth-page--access .portal-auth-brand {
    grid-column: 1;
  }

  .portal-auth-page--access .portal-auth-header-actions {
    grid-column: 2;
  }

  .portal-auth-page--access .portal-auth-locale-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
  }

  .portal-auth-page--access .portal-auth-locale-link {
    flex: 1 1 0;
  }
}

/* These legacy studios authored their intro metrics for dark gradient panels.
   The shared light-surface rule now owns their outer panel, so their nested
   metric cards and text must move to the same semantic light palette instead
   of retaining low-contrast pastel ink.  Execution, form and route behavior
   stay unchanged. */
.portal-page :is(
  .portal-image-prompt-composer-intro,
  .portal-video-prompt-planner-intro,
  .portal-workboard-intro,
  .portal-workboard-detail-summary
) dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page :is(
  .portal-image-prompt-composer-intro,
  .portal-video-prompt-planner-intro,
  .portal-workboard-intro
) :is(h2, dt),
.portal-page .portal-workboard-detail-summary :is(h2, dd) {
  color: var(--portal-ink);
}

.portal-page :is(
  .portal-image-prompt-composer-intro,
  .portal-video-prompt-planner-intro,
  .portal-workboard-intro
) :is(p, dd),
.portal-page .portal-workboard-detail-summary :is(p, dt) {
  color: var(--portal-muted);
}

/* Workboard retains its existing board, list and revision behavior. These
   scoped rules only replace the legacy dark panel palette now that the shared
   portal surface is light, so status, title and metadata remain readable. */
.portal-page .portal-workboard-tabs a {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page .portal-workboard-tabs a:hover,
.portal-page .portal-workboard-tabs a[aria-current="page"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page .portal-workboard-tabs .portal-workboard-tabs-new,
.portal-page .portal-workboard-tabs .portal-workboard-tabs-new:hover,
.portal-page .portal-workboard-tabs .portal-workboard-tabs-new:focus-visible {
  border-color: var(--portal-action);
  background: var(--portal-action);
  color: var(--portal-on-action);
}

.portal-page .portal-workboard-board-card {
  background: var(--portal-surface-light);
}

.portal-page .portal-workboard-column {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-workboard-column > header span {
  color: var(--portal-ink);
}

.portal-page .portal-workboard-column > header b {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-context);
}

.portal-page .portal-workboard-column-empty {
  border-color: var(--portal-border);
  color: var(--portal-muted);
}

.portal-page .portal-workboard-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-workboard-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page .portal-workboard-card h3,
.portal-page .portal-workboard-card h3 a {
  color: var(--portal-ink);
}

.portal-page .portal-workboard-card h3 a:hover {
  color: var(--portal-action);
}

.portal-page .portal-workboard-card :is(p, footer) {
  color: var(--portal-muted);
}

.portal-page .portal-workboard-card-move,
.portal-page .portal-workboard-progress {
  color: var(--portal-action);
}

.portal-page .portal-workboard-card-move:hover {
  color: var(--portal-action-hover);
}

.portal-page .portal-workboard-priority {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page .portal-workboard-priority[data-priority="low"] {
  border-color: color-mix(in srgb, var(--portal-context) 36%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-context) 7%, var(--portal-surface-light));
  color: var(--portal-context);
}

.portal-page .portal-workboard-priority[data-priority="normal"] {
  border-color: color-mix(in srgb, var(--portal-action) 36%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 7%, var(--portal-surface-light));
  color: var(--portal-action);
}

.portal-page .portal-workboard-priority[data-priority="high"] {
  border-color: color-mix(in srgb, var(--portal-warning) 42%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-warning) 8%, var(--portal-surface-light));
  color: var(--portal-warning);
}

.portal-page .portal-workboard-priority[data-priority="urgent"] {
  border-color: color-mix(in srgb, var(--portal-danger) 42%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-danger) 8%, var(--portal-surface-light));
  color: var(--portal-danger);
}

.portal-page .portal-workboard-reference-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page .portal-workboard-reference-list b {
  color: var(--portal-ink);
}

.portal-page .portal-workboard-list-row {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-workboard-list-row:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page .portal-workboard-list-title b {
  color: var(--portal-ink);
}

.portal-page :is(.portal-workboard-list-title small, .portal-workboard-list-meta small) {
  color: var(--portal-muted);
}

.portal-page .portal-workboard-reference-picker {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-workboard-reference-picker :is(legend, strong) {
  color: var(--portal-ink);
}

.portal-page .portal-workboard-reference-picker p,
.portal-page .portal-workboard-reference-options span {
  color: var(--portal-muted);
}

.portal-page .portal-workboard-reference-options label {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-workboard-reference-options b {
  color: var(--portal-context);
}

.portal-page :is(.portal-workboard-state-form label, .portal-workboard-checklist-add label) {
  color: var(--portal-muted);
}

.portal-page :is(.portal-workboard-state-form select, .portal-workboard-checklist-add input) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page :is(.portal-workboard-state-form select, .portal-workboard-checklist-add input):focus {
  border-color: var(--portal-context);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--portal-context) 16%, transparent);
}

.portal-page .portal-workboard-checklist li {
  border-top-color: var(--portal-border);
  color: var(--portal-ink);
}

.portal-page .portal-workboard-checklist li.is-done span:last-child {
  color: var(--portal-muted);
}

.portal-page :is(.portal-workboard-checklist button, .portal-workboard-checkmark) {
  border-color: color-mix(in srgb, var(--portal-action) 34%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 8%, var(--portal-surface-light));
  color: var(--portal-action);
}

.portal-page .portal-workboard-checklist button:hover {
  border-color: var(--portal-action);
  background: color-mix(in srgb, var(--portal-action) 14%, var(--portal-surface-light));
}

.portal-page :is(.portal-workboard-version-list > article, .portal-workboard-events > div) {
  border-top-color: var(--portal-border);
}

.portal-page :is(.portal-workboard-version-list b, .portal-workboard-events b) {
  color: var(--portal-ink);
}

.portal-page :is(.portal-workboard-version-list small, .portal-workboard-version-list p, .portal-workboard-events small) {
  color: var(--portal-muted);
}

.portal-page .portal-workboard-events > div > span:first-child {
  background: var(--portal-brand);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--portal-brand) 12%, transparent);
}

/* Support and Operations share legacy dark-gradient intros. The semantic
   theme already gives their outer panels the light application surface, so
   their metrics and text need the same readable token pair. Operations also
   powers Finance Planning, Reliability, Security and Access Admin views. */
.portal-page :is(
  .portal-support-intro,
  .portal-support-admin-intro,
  .portal-operations-intro,
  .portal-operations-admin-intro
) dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page :is(
  .portal-support-intro,
  .portal-support-admin-intro,
  .portal-operations-intro,
  .portal-operations-admin-intro
) :is(h2, dt) {
  color: var(--portal-ink);
}

.portal-page :is(
  .portal-support-intro,
  .portal-support-admin-intro,
  .portal-operations-intro,
  .portal-operations-admin-intro
) :is(p, dd) {
  color: var(--portal-muted);
}

/* Operations is an evidence and approval surface, not a dark monitoring
   console. Keep its status colors while moving metrics, incidents and records
   onto the same calm light hierarchy as the rest of Admin ERP. */
.portal-page :is(.portal-operations, .portal-operations-admin) .portal-operations-metrics .portal-metric {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page :is(.portal-operations, .portal-operations-admin) .portal-operations-metrics .portal-metric > span {
  color: var(--portal-muted);
}

.portal-page :is(.portal-operations, .portal-operations-admin) .portal-operations-metrics .portal-metric > em {
  color: var(--portal-muted);
}

.portal-page :is(.portal-operations, .portal-operations-admin) .portal-operations-metrics .portal-metric > strong {
  color: var(--portal-ink);
}

.portal-page .portal-operations-incident {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-operations-incident[data-severity="high"] {
  border-color: var(--portal-warning);
  background: color-mix(in srgb, var(--portal-warning) 7%, var(--portal-surface-light));
}

.portal-page .portal-operations-incident[data-severity="critical"] {
  border-color: var(--portal-danger);
  background: color-mix(in srgb, var(--portal-danger) 7%, var(--portal-surface-light));
}

.portal-page .portal-operations-incident h3 {
  color: var(--portal-ink);
}

.portal-page .portal-operations-incident p {
  color: var(--portal-muted);
}

.portal-page .portal-operations-meta > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-operations-meta dt {
  color: var(--portal-muted);
}

.portal-page .portal-operations-meta dd {
  color: var(--portal-ink);
}

.portal-page .portal-operations-code {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-operations-boundary {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-operations-boundary :is(h2, .portal-card-title) {
  color: var(--portal-ink);
}

.portal-page .portal-operations-boundary p,
.portal-page .portal-operations-boundary-list li {
  color: var(--portal-muted);
}

.portal-page .portal-operations-boundary-list li {
  border-top-color: var(--portal-border);
}

.portal-page .portal-operations-boundary-list li::before {
  background: color-mix(in srgb, var(--portal-action) 10%, var(--portal-surface-light));
  color: var(--portal-action);
}

.portal-page :is(
  .portal-operations-row,
  .portal-operations-run,
  .portal-operations-approval,
  .portal-reliability-row
) strong {
  color: var(--portal-ink);
}

.portal-page :is(
  .portal-operations-row,
  .portal-operations-run,
  .portal-operations-approval,
  .portal-reliability-row
) small {
  color: var(--portal-muted);
}

.portal-page .portal-operations-approval[data-state="awaiting_approval"] {
  border-color: var(--portal-warning);
  background: var(--portal-surface-light);
}

.portal-page .portal-operations-approval-form .portal-button--danger {
  border-color: var(--portal-danger);
  background: color-mix(in srgb, var(--portal-danger) 8%, var(--portal-surface-light));
  color: var(--portal-danger);
}

.portal-page .portal-operations-approval-form .portal-button--danger:hover {
  border-color: var(--portal-danger);
  background: color-mix(in srgb, var(--portal-danger) 14%, var(--portal-surface-light));
  color: var(--portal-danger);
}

/* Every Admin domain intro reuses the shared light state surface. Its legacy
   pale meta pills need a bordered light treatment instead of low-contrast
   text inherited from the former dark panel. */
.portal-page .portal-admin-domain-intro .portal-state-meta span {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

/* Project, Document/Image Operations, Vault and Memory began as dark feature
   surfaces. Their outer panels now inherit the shared light canvas, while
   Project detail deliberately keeps dt as its label and dd as its value. */
.portal-page :is(
  .portal-project-intro,
  .portal-project-package-intro,
  .portal-document-operation-intro,
  .portal-vault-intro,
  .portal-memory-intro,
  .portal-project-summary
) dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page :is(
  .portal-project-intro,
  .portal-project-package-intro,
  .portal-document-operation-intro,
  .portal-vault-intro,
  .portal-memory-intro
) :is(h2, dt) {
  color: var(--portal-ink);
}

.portal-page :is(
  .portal-project-intro,
  .portal-project-package-intro,
  .portal-document-operation-intro,
  .portal-vault-intro,
  .portal-memory-intro
) :is(p, dd) {
  color: var(--portal-muted);
}

.portal-page .portal-project-summary :is(h2, dd) {
  color: var(--portal-ink);
}

.portal-page .portal-project-summary :is(p, dt) {
  color: var(--portal-muted);
}

/* Studio indexes use dt for their headline metric and dd for its caption.
   Their detail summaries intentionally reverse that relationship, so direct
   child selectors keep nested tags and reference panels in their own context. */
.portal-page :is(
  .portal-prompt-library-intro,
  .portal-content-studio-intro,
  .portal-voice-studio-intro,
  .portal-media-workspace-intro,
  .portal-video-studio-intro,
  .portal-image-studio-intro,
  .portal-document-workspace-intro,
  .portal-chat-workspace-intro,
  .portal-prompt-library-detail-summary,
  .portal-content-studio-detail-summary,
  .portal-voice-studio-detail-summary,
  .portal-media-detail-summary,
  .portal-video-studio-detail-summary,
  .portal-image-studio-detail-summary,
  .portal-document-workspace-detail-summary,
  .portal-chat-thread-summary
) > dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page :is(
  .portal-prompt-library-intro,
  .portal-content-studio-intro,
  .portal-voice-studio-intro,
  .portal-media-workspace-intro,
  .portal-video-studio-intro,
  .portal-image-studio-intro,
  .portal-document-workspace-intro,
  .portal-chat-workspace-intro
) > div > h2,
.portal-page :is(
  .portal-prompt-library-intro,
  .portal-content-studio-intro,
  .portal-voice-studio-intro,
  .portal-media-workspace-intro,
  .portal-video-studio-intro,
  .portal-image-studio-intro,
  .portal-document-workspace-intro,
  .portal-chat-workspace-intro
) > dl > div > dt {
  color: var(--portal-ink);
}

.portal-page :is(
  .portal-prompt-library-intro,
  .portal-content-studio-intro,
  .portal-voice-studio-intro,
  .portal-media-workspace-intro,
  .portal-video-studio-intro,
  .portal-image-studio-intro,
  .portal-document-workspace-intro,
  .portal-chat-workspace-intro
) > div > p,
.portal-page :is(
  .portal-prompt-library-intro,
  .portal-content-studio-intro,
  .portal-voice-studio-intro,
  .portal-media-workspace-intro,
  .portal-video-studio-intro,
  .portal-image-studio-intro,
  .portal-document-workspace-intro,
  .portal-chat-workspace-intro
) > dl > div > dd {
  color: var(--portal-muted);
}

.portal-page :is(
  .portal-prompt-library-detail-summary,
  .portal-content-studio-detail-summary,
  .portal-voice-studio-detail-summary,
  .portal-media-detail-summary,
  .portal-video-studio-detail-summary,
  .portal-image-studio-detail-summary,
  .portal-document-workspace-detail-summary,
  .portal-chat-thread-summary
) > div > h2,
.portal-page :is(
  .portal-prompt-library-detail-summary,
  .portal-content-studio-detail-summary,
  .portal-voice-studio-detail-summary,
  .portal-media-detail-summary,
  .portal-video-studio-detail-summary,
  .portal-image-studio-detail-summary,
  .portal-document-workspace-detail-summary,
  .portal-chat-thread-summary
) > dl > div > dd {
  color: var(--portal-ink);
}

.portal-page :is(
  .portal-prompt-library-detail-summary,
  .portal-content-studio-detail-summary,
  .portal-voice-studio-detail-summary,
  .portal-media-detail-summary,
  .portal-video-studio-detail-summary,
  .portal-image-studio-detail-summary,
  .portal-document-workspace-detail-summary,
  .portal-chat-thread-summary
) > div > p,
.portal-page :is(
  .portal-prompt-library-detail-summary,
  .portal-content-studio-detail-summary,
  .portal-voice-studio-detail-summary,
  .portal-media-detail-summary,
  .portal-video-studio-detail-summary,
  .portal-image-studio-detail-summary,
  .portal-document-workspace-detail-summary,
  .portal-chat-thread-summary
) > dl > div > dt {
  color: var(--portal-muted);
}

.portal-page :is(
  .portal-prompt-library-detail-summary,
  .portal-content-studio-detail-summary,
  .portal-voice-studio-detail-summary,
  .portal-media-detail-summary,
  .portal-video-studio-detail-summary,
  .portal-image-studio-detail-summary,
  .portal-document-workspace-detail-summary,
  .portal-chat-thread-summary
) > div > :is(
  .portal-prompt-library-tags,
  .portal-content-studio-tags,
  .portal-voice-studio-tags,
  .portal-voice-reference-list,
  .portal-media-tags,
  .portal-video-studio-tags,
  .portal-image-studio-tags,
  .portal-document-workspace-tags,
  .portal-chat-workspace-tags
) > span {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

/* Readiness guides stay read-only, but their heading and status context must
   remain legible after the shared light surface replaces legacy dark panels. */
.portal-page :is(
  .portal-stewardship-intro,
  .portal-tax-readiness-intro,
  .portal-postback-readiness-intro,
  .portal-job-recovery-intro
) > div:first-child > h2 {
  color: var(--portal-ink);
}

.portal-page :is(
  .portal-stewardship-intro,
  .portal-tax-readiness-intro,
  .portal-postback-readiness-intro,
  .portal-job-recovery-intro
) > div:first-child > p {
  color: var(--portal-muted);
}

.portal-page :is(
  .portal-stewardship-intro-status,
  .portal-tax-readiness-intro-status,
  .portal-postback-readiness-intro-status,
  .portal-job-recovery-intro-status
) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page :is(
  .portal-stewardship-intro-status,
  .portal-tax-readiness-intro-status,
  .portal-postback-readiness-intro-status,
  .portal-job-recovery-intro-status
) > span:first-child {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page :is(
  .portal-stewardship-intro-status,
  .portal-tax-readiness-intro-status,
  .portal-postback-readiness-intro-status,
  .portal-job-recovery-intro-status
) strong {
  color: var(--portal-ink);
}

.portal-page :is(
  .portal-stewardship-intro-status,
  .portal-tax-readiness-intro-status,
  .portal-postback-readiness-intro-status,
  .portal-job-recovery-intro-status
) small {
  color: var(--portal-muted);
}

/* Guide Center shares the light intro surface, so its compact metrics cannot
   retain the dark inset panel or low-contrast legacy ink. */
.portal-page .portal-guide-center-intro > dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-guide-center-intro > dl > div > dt {
  color: var(--portal-ink);
}

.portal-page .portal-guide-center-intro > dl > div > dd {
  color: var(--portal-muted);
}

/* Media finalization and Bot companion cards keep their read-only boundary,
   but their outer panels and cards now inherit the shared light system.  Move
   the former dark-only text, icon and command-chip treatments to semantic
   light-surface tokens without altering route, job or Bot handoff behavior. */
.portal-page :is(
  .portal-finalization-intro,
  .portal-media-studio-intro,
  .portal-bot-companion-intro
) .portal-state-meta span {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page :is(
  .portal-media-studio-intro,
  .portal-bot-companion-intro
) .portal-state-icon {
  color: var(--portal-context);
}

.portal-page .portal-finalization-intro .portal-state-icon {
  color: var(--portal-warning);
}

.portal-page :is(
  .portal-finalization-card,
  .portal-bot-companion-card
) h3 {
  color: var(--portal-ink);
}

.portal-page .portal-finalization-card .portal-module-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-finalization-number {
  color: var(--portal-context);
}

.portal-page .portal-finalization-guard {
  color: var(--portal-warning);
}

.portal-page .portal-bot-companion-card .portal-link-code {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

/* Dashboard launch cards and the feature catalogue reuse the shared light
   card surface. Their rendered markup uses plain strong/h3 elements and
   engine labels, so explicitly map that real hierarchy rather than relying on
   legacy alias classes that are no longer present in the DOM. */
.portal-page .portal-action-card > strong,
.portal-page .portal-action-card h3,
.portal-page .portal-module-card h3,
.portal-page .portal-studio-card h3 {
  color: var(--portal-ink);
}

.portal-page :is(
  .portal-action-card,
  .portal-module-card,
  .portal-studio-card
):hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page .portal-studio-tags span {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page .portal-studio-open,
.portal-page .portal-studio-open b {
  color: var(--portal-action);
}

.portal-page :is(
  .portal-action-card,
  .portal-module-card
) .portal-module-icon,
.portal-page .portal-studio-card .portal-studio-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-module-card .portal-engine-label {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page .portal-module-card .portal-engine-label[data-engine-mode="web_native"] {
  border-color: color-mix(in srgb, var(--portal-action) 45%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page .portal-module-card .portal-engine-label[data-engine-mode="bot_companion"] {
  border-color: color-mix(in srgb, var(--portal-context) 45%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-module-card .portal-engine-label[data-engine-mode="guarded"] {
  border-color: color-mix(in srgb, var(--portal-warning) 42%, var(--portal-border));
  background: var(--portal-surface-light);
  color: var(--portal-warning);
}

.portal-page .portal-module-card .portal-readiness-label {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page .portal-module-card .portal-readiness-label[data-readiness="available"] {
  border-color: color-mix(in srgb, var(--portal-action) 45%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page .portal-module-card .portal-readiness-label[data-readiness="planning_only"] {
  border-color: color-mix(in srgb, var(--portal-context) 45%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-module-card .portal-readiness-label[data-readiness="local_execution"] {
  border-color: color-mix(in srgb, var(--portal-success) 45%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-success);
}

.portal-page .portal-module-card .portal-readiness-label[data-readiness="canonical_read"] {
  border-color: color-mix(in srgb, var(--portal-context) 45%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-module-card .portal-readiness-label[data-readiness="guarded"] {
  border-color: color-mix(in srgb, var(--portal-warning) 42%, var(--portal-border));
  background: var(--portal-surface-light);
  color: var(--portal-warning);
}

.portal-page .portal-module-card .portal-readiness-label[data-readiness="disabled"] {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

/* Canonical planning suggestions are read-only reference material. Keep the
   title, source label and generated prompt readable when their legacy card
   container inherits the light application surface. */
.portal-page .portal-suggestion-card-head strong {
  color: var(--portal-ink);
}

.portal-page .portal-suggestion-card-head span {
  color: var(--portal-action);
}

.portal-page .portal-suggestion-card .portal-result-text {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

/* Support case cards are displayed in both customer and operator queues. The
   case hero can retain its deliberate dark treatment, while list cards and
   their metadata inherit the shared light application surface. */
.portal-page .portal-support-case-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page .portal-support-case-card .portal-support-case-category {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-support-case-card h3 {
  color: var(--portal-ink);
}

.portal-page .portal-support-case-card > p {
  color: var(--portal-muted);
}

.portal-page .portal-support-case-meta > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-support-case-meta dt,
.portal-page .portal-support-case-meta dd small {
  color: var(--portal-muted);
}

.portal-page .portal-support-case-meta dd {
  color: var(--portal-ink);
}

/* Campaign planning cards appear in the owner-scoped list, self-review queue
   and editable detail screen. They retain their planning semantics while
   their former dark-only headings and links adopt the shared light surface. */
.portal-page .portal-campaign-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page .portal-campaign-card h3,
.portal-page .portal-campaign-card h3 a {
  color: var(--portal-ink);
}

.portal-page .portal-campaign-card .portal-eyebrow {
  color: var(--portal-action);
}

.portal-page .portal-campaign-card-head p {
  color: var(--portal-muted);
}

.portal-page .portal-campaign-destination {
  color: var(--portal-action);
}

.portal-page .portal-campaign-destination:hover,
.portal-page .portal-campaign-destination:focus-visible {
  color: var(--portal-action-hover);
}

.portal-page .portal-campaign-edit {
  border-top-color: var(--portal-border);
  border-bottom-color: var(--portal-border);
}

.portal-page .portal-campaign-edit > summary {
  color: var(--portal-ink);
}

.portal-page .portal-campaign-edit > summary::after {
  color: var(--portal-action);
}

/* Private artifact cards share the same output policy even when their source
   workflows differ. Keep file-type marks and compact metadata readable after
   those legacy dark cards inherit the light workspace surface. */
.portal-page :is(
  .portal-project-package-icon,
  .portal-document-operation-icon,
  .portal-vault-file-icon
) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page :is(
  .portal-project-package-meta,
  .portal-document-operation-meta,
  .portal-vault-meta,
  .portal-memory-reminder-meta
) > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page :is(
  .portal-project-package-meta,
  .portal-document-operation-meta,
  .portal-vault-meta,
  .portal-memory-reminder-meta
) dt {
  color: var(--portal-muted);
}

.portal-page :is(
  .portal-project-package-meta,
  .portal-document-operation-meta,
  .portal-vault-meta,
  .portal-memory-reminder-meta
) dd {
  color: var(--portal-ink);
}

.portal-page .portal-memory-overdue {
  border-color: var(--portal-warning);
  background: var(--portal-surface-light);
  color: var(--portal-warning);
}

.portal-page .portal-memory-reminder-edit > summary {
  color: var(--portal-context);
}

/* The catalogue's global mint rule is important and was only corrected for
   access/landing pages.  Workspace controls need the same visible focus ring
   against the light canvas without changing their behavior. */
.portal-main :focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px var(--portal-surface-light), 0 0 0 5px var(--portal-focus);
}

.portal-account-page [data-portal-action="auth-logout"] {
  border-color: color-mix(in srgb, var(--portal-danger) 55%, var(--portal-border));
  color: var(--portal-danger);
  background: color-mix(in srgb, var(--portal-danger) 7%, var(--portal-surface-light));
}

.portal-account-page [data-portal-action="auth-logout"]:hover,
.portal-account-page [data-portal-action="auth-logout"]:focus-visible {
  border-color: var(--portal-danger);
  color: var(--portal-danger);
  background: color-mix(in srgb, var(--portal-danger) 12%, var(--portal-surface-light));
}

/* Inbox and Automation Center reuse the same owner-scoped record model. Their
   original dark-only cards are intentionally flattened into the established
   light workspace hierarchy without changing a notification's state or action. */
.portal-page :is(.portal-inbox, .portal-notification-automation) .portal-inbox-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page :is(.portal-inbox, .portal-notification-automation) .portal-inbox-intro :is(h2, dt) {
  color: var(--portal-ink);
}

.portal-page :is(.portal-inbox, .portal-notification-automation) .portal-inbox-intro :is(p, dd) {
  color: var(--portal-muted);
}

.portal-page :is(.portal-inbox, .portal-notification-automation) .portal-inbox-intro dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-inbox .portal-inbox-metrics .portal-metric {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-inbox .portal-inbox-metrics .portal-metric > :is(span, em) {
  color: var(--portal-muted);
}

.portal-page .portal-inbox .portal-inbox-metrics .portal-metric > strong {
  color: var(--portal-ink);
}

.portal-page .portal-inbox-filter {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-inbox-pagination {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
}

.portal-page .portal-inbox-boundary {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-inbox-item {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-inbox-item:hover,
.portal-page .portal-inbox-item:focus-within {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  transform: none;
}

.portal-page .portal-inbox-item[data-severity="urgent"] {
  border-color: var(--portal-warning);
  background: color-mix(in srgb, var(--portal-warning) 7%, var(--portal-surface-light));
}

.portal-page .portal-inbox-item[data-state="dismissed"] {
  opacity: 1;
}

.portal-page .portal-inbox-kind {
  color: var(--portal-context);
}

.portal-page .portal-inbox-item h3 {
  color: var(--portal-ink);
}

.portal-page .portal-inbox-item p {
  color: var(--portal-muted);
}

.portal-page .portal-inbox-item-meta > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-inbox-item-meta dt {
  color: var(--portal-muted);
}

.portal-page .portal-inbox-item-meta dd {
  color: var(--portal-ink);
}

.portal-page .portal-inbox-run strong {
  color: var(--portal-ink);
}

.portal-page .portal-inbox-run small {
  color: var(--portal-muted);
}

/* Billing and Delivery project only canonical, owner-scoped records. Keep the
   established boundary while replacing the legacy dark treatment with the
   same calm decision hierarchy used throughout the signed workspace. */
.portal-page .portal-wallet-facts {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-wallet-facts > div {
  border-bottom-color: var(--portal-border);
}

.portal-page .portal-wallet-facts dt {
  color: var(--portal-muted);
}

.portal-page .portal-wallet-facts dd {
  color: var(--portal-ink);
}

.portal-page .portal-wallet-read-status {
  border-color: color-mix(in srgb, var(--portal-context) 32%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page .portal-billing-journey {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-billing-journey h2 {
  color: var(--portal-ink);
}

.portal-page .portal-billing-journey p {
  color: var(--portal-muted);
}

.portal-page .portal-billing-journey-lanes li {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-billing-journey-lanes li > span {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page .portal-billing-journey-lanes strong {
  color: var(--portal-ink);
}

.portal-page .portal-billing-entrypoints .portal-payment-entry {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-billing-entrypoints .portal-payment-entry--manual {
  border-color: var(--portal-warning);
}

.portal-page .portal-billing-entrypoints .portal-payment-entry :is(h3, strong) {
  color: var(--portal-ink);
}

.portal-page .portal-billing-entrypoints .portal-payment-entry :is(p, .portal-payment-entry-note) {
  color: var(--portal-muted);
}

.portal-page .portal-billing-catalog-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-billing-catalog-intro h2 {
  color: var(--portal-ink);
}

.portal-page .portal-billing-catalog-intro p {
  color: var(--portal-muted);
}

.portal-page .portal-billing-catalog-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-billing-catalog-card .portal-module-card-footer {
  color: var(--portal-muted);
}

.portal-page .portal-billing-nav {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-billing-nav a {
  color: var(--portal-muted);
}

.portal-page .portal-billing-nav a:hover,
.portal-page .portal-billing-nav a:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page .portal-billing-nav a[aria-current="page"] {
  border-color: var(--portal-context);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page .portal-delivery-summary-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-delivery-summary-card > span {
  color: var(--portal-muted);
}

.portal-page .portal-delivery-summary-card > small {
  color: var(--portal-muted);
}

.portal-page .portal-delivery-summary-card > strong {
  color: var(--portal-ink);
}

.portal-page .portal-record-source {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page .portal-record-source[data-record-source="web_vault"] {
  border-color: color-mix(in srgb, var(--portal-context) 46%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-record-source[data-record-source="web_native_output"] {
  border-color: color-mix(in srgb, var(--portal-action) 46%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page .portal-record-source[data-record-source="canonical_delivery"] {
  border-color: color-mix(in srgb, var(--portal-warning) 46%, var(--portal-border));
  background: var(--portal-surface-light);
  color: var(--portal-warning);
}

.portal-page .portal-delivery-state[data-delivery="vault"] {
  border-color: color-mix(in srgb, var(--portal-context) 46%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-delivery-lifecycle-list {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-delivery-lifecycle-list li {
  border-bottom-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-delivery-lifecycle-list li > span:first-child {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-delivery-lifecycle-list strong {
  color: var(--portal-ink);
}

.portal-page .portal-delivery-lifecycle-list p {
  color: var(--portal-muted);
}

.portal-page .portal-delivery-next-action {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-delivery-next-action strong {
  color: var(--portal-ink);
}

.portal-page .portal-delivery-next-action p {
  color: var(--portal-muted);
}

.portal-page .portal-delivery-mobile-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-delivery-mobile-card-head strong {
  color: var(--portal-ink);
}

.portal-page .portal-delivery-mobile-source,
.portal-page .portal-delivery-mobile-meta dt {
  color: var(--portal-muted);
}

.portal-page .portal-delivery-mobile-meta dd {
  color: var(--portal-ink);
}

.portal-page .portal-delivery-nav {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-delivery-nav a {
  color: var(--portal-muted);
}

.portal-page .portal-delivery-nav a:hover,
.portal-page .portal-delivery-nav a:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page .portal-delivery-nav a[aria-current="page"] {
  border-color: var(--portal-context);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

/* The delivery views have more live states than their summary cards. Keep
   filters, signed-download affordances and canonical manual-top-up handoff
   readable without changing any ledger, payment or download decision. */
.portal-page .portal-filter-button {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page .portal-filter-button:hover,
.portal-page .portal-filter-button.is-active {
  border-color: var(--portal-context);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page .portal-filter-button span {
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-delivery-state {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page .portal-delivery-state[data-delivery="reported"] {
  border-color: color-mix(in srgb, var(--portal-action) 46%, var(--portal-border));
  color: var(--portal-action);
}

.portal-page .portal-delivery-state[data-delivery="pending"] {
  border-color: color-mix(in srgb, var(--portal-warning) 46%, var(--portal-border));
  color: var(--portal-warning);
}

.portal-page .portal-delivery-state[data-delivery="validated"] {
  border-color: color-mix(in srgb, var(--portal-action) 46%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page .portal-delivery-state[data-delivery="unavailable"] {
  border-color: color-mix(in srgb, var(--portal-danger) 46%, var(--portal-border));
  color: var(--portal-danger);
}

.portal-page .portal-delivery-link:hover {
  border-color: var(--portal-action);
  background: var(--portal-action);
  color: var(--portal-on-action);
}

.portal-page .portal-delivery-link:focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 3px;
}

.portal-page .portal-job-cost strong {
  color: var(--portal-ink);
}

.portal-page .portal-payment-entry {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-payment-entry h3 {
  color: var(--portal-ink);
}

.portal-page .portal-payment-entry p {
  color: var(--portal-muted);
}

.portal-page .portal-payment-entry-note {
  color: var(--portal-muted);
}

.portal-page .portal-billing-entrypoints .portal-link-code {
  border-color: color-mix(in srgb, var(--portal-context) 46%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-manual-topup-route {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-manual-topup-route h3 {
  color: var(--portal-ink);
}

.portal-page .portal-manual-topup-route p {
  color: var(--portal-muted);
}

.portal-page .portal-manual-topup-route > span:last-child {
  color: var(--portal-muted);
}

.portal-page .portal-manual-topup-route.is-guarded {
  border-color: var(--portal-warning);
  background: var(--portal-surface-light);
}

.portal-page .portal-manual-topup-route.is-guarded .portal-module-icon {
  border-color: color-mix(in srgb, var(--portal-warning) 46%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-warning);
}

.portal-page .portal-manual-topup-status > span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-manual-topup-status code {
  color: var(--portal-context);
}

.portal-page .portal-manual-topup-status small {
  color: var(--portal-muted);
}

/* Music and SFX Library stays a private metadata index. It deliberately does
   not imply playback, preview, generation or delivery; these overrides only
   make its existing read-only hierarchy legible on the shared light canvas. */
.portal-page .portal-music-library-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-music-library-intro h2 {
  color: var(--portal-ink);
}

.portal-page .portal-music-library-intro p {
  color: var(--portal-muted);
}

.portal-page .portal-music-library-read-badge {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page .portal-music-library-board {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-music-library-filter {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-music-library-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-music-library-card:hover,
.portal-page .portal-music-library-card:focus-within {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  transform: none;
}

.portal-page .portal-music-library-role {
  border-color: color-mix(in srgb, var(--portal-action) 46%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page .portal-music-library-favorite {
  border-color: color-mix(in srgb, var(--portal-warning) 46%, var(--portal-border));
  background: var(--portal-surface-light);
  color: var(--portal-warning);
}

.portal-page .portal-music-library-card-copy h3 {
  color: var(--portal-ink);
}

.portal-page .portal-music-library-card-copy p {
  color: var(--portal-muted);
}

.portal-page .portal-music-library-card-copy strong {
  color: var(--portal-ink);
}

.portal-page .portal-music-library-meta > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-music-library-meta dt {
  color: var(--portal-muted);
}

.portal-page .portal-music-library-meta dd {
  color: var(--portal-ink);
}

.portal-page .portal-music-library-tags span {
  border-color: color-mix(in srgb, var(--portal-context) 46%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-music-library-muted,
.portal-page .portal-music-library-card-footer > span,
.portal-page .portal-music-library-pagination {
  color: var(--portal-muted);
}

.portal-page .portal-music-library-boundary {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-music-library-boundary strong {
  color: var(--portal-ink);
}

.portal-page .portal-music-library-boundary span {
  color: var(--portal-muted);
}

.portal-page .portal-music-library-guard {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-music-library :is(a, button, input):focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 3px;
}

/* Onboarding makes the Web-first route and optional signed Telegram link
   equally clear. This is presentation-only: link expiry, callback verification
   and account authority continue to live on the server and Bot boundary. */
.portal-page .portal-onboarding-action > .portal-notice {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-onboarding-action .portal-onboarding-choice-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page .portal-onboarding-action .portal-onboarding-choice strong {
  color: var(--portal-ink);
}

.portal-page .portal-onboarding-action .portal-onboarding-choice p {
  color: var(--portal-muted);
}

.portal-page .portal-onboarding-steps {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-onboarding-steps li {
  border-top-color: var(--portal-border);
}

.portal-page .portal-onboarding-steps li > span {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page .portal-onboarding-steps strong {
  color: var(--portal-ink);
}

.portal-page .portal-onboarding-steps small {
  color: var(--portal-muted);
}

.portal-page .portal-onboarding-steps li[data-state="current"] {
  border-left-color: var(--portal-action);
  background: var(--portal-surface-soft);
}

.portal-page .portal-onboarding-steps li[data-state="current"] > span {
  border-color: var(--portal-action);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page .portal-onboarding-route {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-onboarding-route strong {
  color: var(--portal-ink);
}

.portal-page .portal-onboarding-route p {
  color: var(--portal-muted);
}

.portal-page .portal-onboarding-route-state {
  color: var(--portal-action);
}

.portal-page .portal-onboarding-page > .portal-onboarding-assurance {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-onboarding-page > .portal-onboarding-assurance > summary {
  color: var(--portal-ink);
}

/* Account and Security are server-authorized control surfaces. Their light
   hierarchy clarifies signed-session and MFA posture without manufacturing a
   session, permission or security outcome in the browser. */
.portal-page .portal-settings-nav {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-settings-nav a {
  color: var(--portal-muted);
}

.portal-page .portal-settings-nav a:hover,
.portal-page .portal-settings-nav a:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page .portal-settings-nav a[aria-current="page"] {
  border-color: var(--portal-context);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page .portal-account-command {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-account-command-copy h2 {
  color: var(--portal-ink);
}

.portal-page .portal-account-command-copy p {
  color: var(--portal-muted);
}

.portal-page .portal-account-command-facts > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-account-command-facts dt {
  color: var(--portal-muted);
}

.portal-page .portal-account-command-facts dd {
  color: var(--portal-ink);
}

.portal-page .portal-account-session {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-security-posture {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-security-posture-head h2 {
  color: var(--portal-ink);
}

.portal-page .portal-security-posture-head p {
  color: var(--portal-muted);
}

.portal-page .portal-security-posture-facts > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-security-posture-facts > div[data-state="ready"] {
  border-color: color-mix(in srgb, var(--portal-action) 46%, var(--portal-border));
}

.portal-page .portal-security-posture-facts > div[data-state="guarded"] {
  border-color: color-mix(in srgb, var(--portal-warning) 46%, var(--portal-border));
}

.portal-page .portal-security-posture-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page .portal-security-posture-facts small {
  color: var(--portal-muted);
}

.portal-page .portal-security-posture-facts strong {
  color: var(--portal-ink);
}

.portal-page .portal-security-posture-facts em {
  color: var(--portal-muted);
}

.portal-page .portal-account-security .portal-security-assurance {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-account-security .portal-security-assurance summary {
  color: var(--portal-ink);
}

/* Admin ERP is a role-gated operational surface, not a dark monitoring wall.
   Preserve every server-owned capability and audit boundary while letting an
   operator distinguish metrics, queues and disclosure states at a glance. */
.portal-page .portal-admin-home > .portal-admin-guard {
  border-color: var(--portal-warning);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-admin-home > .portal-admin-guard .portal-state h2 {
  color: var(--portal-ink);
}

.portal-page .portal-admin-home > .portal-admin-guard .portal-state p {
  color: var(--portal-muted);
}

.portal-page .portal-admin-home > .portal-admin-grid .portal-metric {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-admin-home > .portal-admin-grid .portal-metric span,
.portal-page .portal-admin-home > .portal-admin-grid .portal-metric em {
  color: var(--portal-muted);
}

.portal-page .portal-admin-home > .portal-admin-grid .portal-metric strong {
  color: var(--portal-ink);
}

.portal-page .portal-admin-work-queues {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-admin-work-queues .portal-section-heading h2 {
  color: var(--portal-ink);
}

.portal-page .portal-admin-work-queues .portal-section-heading p {
  color: var(--portal-muted);
}

.portal-page .portal-admin-work-queue {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-admin-work-queue > .portal-module-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page .portal-admin-work-queue strong {
  color: var(--portal-ink);
}

.portal-page .portal-admin-work-queue small {
  color: var(--portal-muted);
}

.portal-page .portal-admin-work-queue > b {
  color: var(--portal-action);
}

.portal-page .portal-admin-work-queue:hover,
.portal-page .portal-admin-work-queue:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
  transform: none;
}

.portal-page .portal-admin-work-queue:hover > b,
.portal-page .portal-admin-work-queue:focus-visible > b {
  color: var(--portal-action);
  transform: none;
}

.portal-page .portal-admin-authority {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-admin-authority > summary {
  color: var(--portal-ink);
}

.portal-page .portal-admin-authority > summary::after {
  color: var(--portal-context);
}

.portal-page .portal-admin-authority > summary:hover {
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page .portal-admin-authority[open] {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page .portal-admin-authority[open] > summary {
  border-bottom-color: var(--portal-border);
}

.portal-page .portal-admin-authority > .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-admin-directory-group {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-admin-directory-group > summary {
  color: var(--portal-ink);
}

.portal-page .portal-admin-directory-group > summary small {
  color: var(--portal-muted);
}

.portal-page .portal-admin-directory-group > summary::after {
  color: var(--portal-context);
}

.portal-page .portal-admin-directory-group > summary:hover {
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page .portal-admin-directory-group[open] {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page .portal-admin-directory-group[open] > summary {
  border-bottom-color: var(--portal-border);
}

.portal-page .portal-admin-directory-group .portal-module-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-admin-directory-group .portal-module-card:hover,
.portal-page .portal-admin-directory-group .portal-module-card:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

/* Private coordination and CRM remain structured workspaces, not dark
   dashboards. These selectors preserve their signed ownership, revision and
   role contracts while returning the legacy panels to the shared light canvas. */
.portal-page:is(.portal-coordination-workspace, .portal-coordination-detail, .portal-crm-workspace, .portal-crm-detail) .portal-coordination-summary {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-coordination-workspace, .portal-coordination-detail, .portal-crm-workspace, .portal-crm-detail) .portal-coordination-summary :is(h2, dt) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-coordination-workspace, .portal-coordination-detail, .portal-crm-workspace, .portal-crm-detail) .portal-coordination-summary :is(p, dd) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-coordination-workspace, .portal-coordination-detail, .portal-crm-workspace, .portal-crm-detail) .portal-coordination-summary dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page .portal-coordination-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page .portal-coordination-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  transform: none;
}

.portal-page .portal-coordination-card .portal-card-title {
  color: var(--portal-ink);
}

.portal-page .portal-coordination-card .portal-card-subtitle,
.portal-page .portal-coordination-card .portal-form-note {
  color: var(--portal-muted);
}

.portal-page .portal-coordination-references {
  border-top-color: var(--portal-border);
}

.portal-page .portal-crm-kanban {
  scroll-snap-type: x proximity;
  scrollbar-color: var(--portal-border-strong) transparent;
}

.portal-page .portal-crm-lane {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  scroll-snap-align: start;
}

.portal-page .portal-crm-lane header {
  border-bottom-color: var(--portal-border);
  color: var(--portal-ink);
}

.portal-page .portal-crm-lane header span {
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page .portal-crm-lane > p {
  color: var(--portal-muted);
}

.portal-page .portal-crm-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page .portal-crm-card:hover,
.portal-page .portal-crm-card:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-ink);
  transform: none;
}

.portal-page .portal-crm-card:focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 3px;
}

.portal-page .portal-crm-card b {
  color: var(--portal-ink);
}

.portal-page .portal-crm-card :is(span, small, em) {
  color: var(--portal-muted);
}

@media (max-width: 740px) {
  .portal-page .portal-crm-kanban {
    grid-auto-columns: minmax(min(84vw, 308px), 1fr);
    scroll-padding-inline: 1px;
  }
}

/* Job-Lock Recovery is a protected, read-only safety guide. Its legacy
   dark cards should not imply a second operations console; use the same
   quiet light hierarchy as the rest of the Admin ERP without changing any
   route gate, canonical link or read-only boundary. */
.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-card-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-card h3,
.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-process li strong,
.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-boundary li strong {
  color: var(--portal-ink);
}

.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-card p,
.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-process li span,
.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-boundary li small {
  color: var(--portal-muted);
}

.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-section .portal-section-heading h2 {
  color: var(--portal-ink);
}

.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-section .portal-section-heading p {
  color: var(--portal-muted);
}

.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-process li {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-boundary li {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-process li::before,
.portal-page.portal-admin-job-recovery-guide .portal-job-recovery-boundary li > span:first-child {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

/* Shared portal lifecycle motion stays presentation-only: a short, one-shot
   opacity/transform cue preserves continuity without moving layout or data. */
@keyframes portal-motion-enter {
  from {
    opacity: 0;
    transform: translateY(var(--portal-motion-distance));
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes portal-motion-pop {
  from {
    opacity: 0;
    transform: scale(.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Portal uses server-rendered document navigations so signed guards remain
   authoritative. Modern browsers can still carry the rendered surface from
   one approved route to the next without a browser-side router, fetch, or
   state hand-off. Browsers without Document View Transitions simply retain
   their normal navigation behavior. */
@view-transition {
  navigation: auto;
}

@keyframes portal-route-exit {
  to {
    opacity: 0;
    transform: translateY(-2px);
  }
}

@keyframes portal-route-enter {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Workspace Draft → Project Studio handoff remains a small, focused authoring
   surface: clear form grouping, touch-safe controls and theme tokens that
   work unchanged in light/dark modes. */
.portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-grid:has(> .portal-workspace-draft:only-child) {
  grid-template-columns: minmax(0, 1fr);
  max-width: 960px;
}

.portal-shell[data-portal-app-kind="customer"] .portal-page.portal-workspace-drafts .portal-workspace-draft-attach {
  display: grid;
  gap: var(--portal-space-3);
  margin-top: var(--portal-space-4);
  padding: var(--portal-space-4);
  border: 1px solid color-mix(in srgb, var(--portal-action) 30%, var(--portal-border));
  border-radius: var(--portal-radius);
  background: linear-gradient(135deg, color-mix(in srgb, var(--portal-action) 7%, var(--portal-surface-light)), var(--portal-surface-soft));
  box-shadow: var(--portal-elevation-1);
}

.portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach > .portal-field > span,
.portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach > .portal-checkbox > span {
  color: var(--portal-ink);
  font-size: 13px;
  line-height: 1.5;
}

.portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach :is(.portal-select, .portal-checkbox, .portal-button--secondary) {
  min-height: 44px;
}

.portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach > .portal-checkbox {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: start;
  gap: var(--portal-space-2);
  padding: var(--portal-space-3);
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink) !important;
}

.portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach > .portal-checkbox:has(input:checked) {
  border-color: var(--portal-border-strong);
  background: color-mix(in srgb, var(--portal-action) 9%, var(--portal-surface-light));
}

.portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach > .portal-form-footer {
  align-items: flex-end;
  margin: 0;
  padding-top: var(--portal-space-3);
  border-top: 1px solid var(--portal-border);
}

.portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach .portal-button--secondary {
  border-color: color-mix(in srgb, var(--portal-context) 45%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 10%, var(--portal-surface-light));
  color: var(--portal-action);
  font-weight: 760;
}

.portal-shell[data-portal-app-kind="customer"] .portal-page.portal-project-detail--loading .portal-project-detail-loading .portal-empty-icon .portal-icon {
  animation: portal-workspace-loading-spin var(--portal-motion-slow) linear infinite;
}

@keyframes portal-workspace-loading-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: no-preference) {
  @media (hover: hover) and (pointer: fine) {
    .portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach {
      transition: border-color var(--portal-motion-base) var(--portal-motion-ease-standard), background-color var(--portal-motion-base) var(--portal-motion-ease-standard), box-shadow var(--portal-motion-base) var(--portal-motion-ease-standard);
    }

    .portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach:focus-within {
      border-color: var(--portal-border-strong);
      box-shadow: var(--portal-elevation-2);
    }

    .portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach .portal-button--secondary {
      transition: transform var(--portal-motion-fast) var(--portal-motion-ease-standard), border-color var(--portal-motion-fast) var(--portal-motion-ease-standard), background-color var(--portal-motion-fast) var(--portal-motion-ease-standard);
    }

    .portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach .portal-button--secondary:is(:hover, :focus-visible):not(:disabled) {
      transform: translateY(-1px);
      border-color: var(--portal-action);
      background: color-mix(in srgb, var(--portal-action) 16%, var(--portal-surface-light));
    }
  }

  @media (hover: none), (pointer: coarse) {
    .portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach .portal-button--secondary:active:not(:disabled) {
      transform: scale(.985);
    }
  }
}

@media (max-width: 700px) {
  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach {
    padding: var(--portal-space-3);
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach > .portal-form-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach .portal-button--secondary {
    width: 100%;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach,
  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-draft-attach .portal-button--secondary,
  .portal-shell[data-portal-app-kind="customer"] .portal-page.portal-project-detail--loading .portal-project-detail-loading .portal-empty-icon .portal-icon {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

@media (prefers-reduced-motion: no-preference) {
  ::view-transition-old(root) {
    animation: portal-route-exit var(--portal-motion-fast) var(--portal-motion-ease-standard) both;
    mix-blend-mode: normal;
  }

  ::view-transition-new(root) {
    animation: portal-route-enter var(--portal-motion-base) var(--portal-motion-ease-emphasis) both;
    mix-blend-mode: normal;
  }

  /* Dashboard keeps its canonical account/job read state stationary. Its
     own helper still reveals only the five non-canonical decision layers. */
  html[data-portal-motion-route="dashboard"]::view-transition-old(root),
  html[data-portal-motion-route="dashboard"]::view-transition-new(root) {
    animation: none;
  }

  [data-portal-motion="enter"] {
    animation: portal-motion-enter var(--portal-motion-base) var(--portal-motion-ease-emphasis) both;
  }

  [data-portal-motion="pop"] {
    animation: portal-motion-pop var(--portal-motion-fast) var(--portal-motion-ease-standard) both;
  }

  .portal-sidebar,
  .portal-command-dialog,
  .portal-toast {
    transition-duration: var(--portal-motion-base);
    transition-timing-function: var(--portal-motion-ease-standard);
  }
}

@media (prefers-reduced-motion: reduce) {
  @view-transition {
    navigation: none;
  }

  [data-portal-motion] {
    animation: none !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Audio Asset Operations remains a signed, owner-scoped utility. These final
   route-local overrides replace the inherited dark legacy panels with the
   shared light working-surface hierarchy without changing its controls. */
.portal-page.portal-audio-asset-operations .portal-audio-assets-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-intro h2 {
  color: var(--portal-ink);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-intro p {
  color: var(--portal-muted);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-intro dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-intro dt {
  color: var(--portal-action);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-intro dd {
  color: var(--portal-muted);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-form {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-boundary {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-history {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-audio-asset-operations .portal-card-title {
  color: var(--portal-ink);
}

.portal-page.portal-audio-asset-operations .portal-card-subtitle,
.portal-page.portal-audio-asset-operations .portal-audio-assets-form .portal-form-note,
.portal-page.portal-audio-asset-operations .portal-audio-assets-form .portal-field small {
  color: var(--portal-muted);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-form .portal-field > label {
  color: var(--portal-ink);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-form label.portal-field {
  color: var(--portal-ink);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-guard-list > span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-guard-list strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-guard-list em {
  color: var(--portal-muted);
}

.portal-page.portal-audio-asset-operations .portal-audio-assets-source-pager {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
}

.portal-page.portal-audio-asset-operations .portal-audio-asset-operation-list > li {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-audio-asset-operations .portal-audio-asset-operation-meta strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-asset-operations .portal-audio-asset-operation-meta span {
  color: var(--portal-muted);
}

.portal-page.portal-audio-asset-operations .portal-audio-asset-operation-meta small {
  color: var(--portal-context);
}

.portal-page.portal-audio-asset-operations .portal-audio-asset-operation-actions {
  color: var(--portal-muted);
}

.portal-page.portal-audio-asset-operations .portal-audio-asset-empty {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page.portal-audio-asset-operations .portal-audio-asset-empty strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-asset-operations .portal-audio-asset-empty span {
  color: var(--portal-muted);
}

/* Audio Production Hub is a private authoring board, not a dark media-player
   or provider console. Keep the main route in the shared light workspace
   system while its existing owner, CSRF and revision controls remain intact. */
.portal-page.portal-audio-hub .portal-audio-hub-overview {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-audio-hub .portal-audio-hub-overview-copy h2 {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub .portal-audio-hub-overview-copy p {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub .portal-audio-hub-lanes li {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-audio-hub .portal-audio-hub-lane-index {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-audio-hub .portal-audio-hub-lanes strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub .portal-audio-hub-lanes b {
  color: var(--portal-action);
}

.portal-page.portal-audio-hub .portal-audio-hub-lanes small {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub .portal-audio-hub-next-steps {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-audio-hub .portal-media-create {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-audio-hub .portal-audio-hub-next-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-audio-hub .portal-media-collection-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-audio-hub .portal-audio-hub-next-card:hover,
.portal-page.portal-audio-hub .portal-audio-hub-next-card:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-ink);
  transform: none;
}

.portal-page.portal-audio-hub .portal-media-collection-card:hover,
.portal-page.portal-audio-hub .portal-media-collection-card:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-ink);
  transform: none;
}

.portal-page.portal-audio-hub .portal-audio-hub-next-card:focus-visible,
.portal-page.portal-audio-hub .portal-media-collection-card:focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 3px;
}

.portal-page.portal-audio-hub .portal-audio-hub-next-card strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub .portal-media-collection-card .portal-card-title {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub .portal-audio-hub-next-card span {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub :is(.portal-card-subtitle, .portal-form-note) {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub .portal-field-help {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub .portal-media-policy {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-audio-hub .portal-media-filter {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-audio-hub :is(.portal-media-create, .portal-media-filter) .portal-field > label,
.portal-page.portal-audio-hub :is(.portal-media-create, .portal-media-filter) label.portal-field {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub .portal-media-policy .portal-project-steps li {
  border-top-color: var(--portal-border);
}

.portal-page.portal-audio-hub .portal-media-events > div {
  border-top-color: var(--portal-border);
}

.portal-page.portal-audio-hub .portal-media-policy .portal-project-steps strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub .portal-media-events strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub .portal-media-policy .portal-project-steps span {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub .portal-media-events small {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub .portal-media-pagination {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub .portal-media-policy .portal-project-steps li::before {
  background: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-audio-hub .portal-media-events > div > span:first-child {
  background: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-audio-hub .portal-media-card-meta span,
.portal-page.portal-audio-hub .portal-media-tags span,
.portal-page.portal-audio-hub .portal-media-guarded-list em {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub .portal-media-policy-flag {
  border-color: color-mix(in srgb, var(--portal-warning) 42%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-warning) 8%, var(--portal-surface-light));
  color: var(--portal-warning);
}

.portal-page.portal-audio-hub .portal-media-guarded-list > span {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub .portal-media-pagination {
  border-top-color: var(--portal-border);
}

/* Audio Hub collection detail is the focused continuation of the light Hub.
   These route-local rules deliberately style the existing review and change
   request surfaces only; their signed ownership, lifecycle and side effects
   remain entirely in the existing client/server contracts. */
.portal-page.portal-audio-hub-detail .portal-media-detail-summary {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-audio-hub-detail .portal-media-detail-summary h2 {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail .portal-media-detail-summary p,
.portal-page.portal-audio-hub-detail .portal-media-detail-summary dt {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-media-detail-summary dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-audio-hub-detail .portal-media-detail-summary dd {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-collection-board,
.portal-page.portal-audio-hub-detail .portal-media-editor,
.portal-page.portal-audio-hub-detail .portal-media-item-card,
.portal-page.portal-audio-hub-detail .portal-audio-change-requests,
.portal-page.portal-audio-hub-detail .portal-audio-change-request-row {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-audio-hub-detail :is(.portal-media-composer, .portal-media-detail-boundary, .portal-audio-hub-review-pack) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-collection-heading h2,
.portal-page.portal-audio-hub-detail .portal-media-item-head h3,
.portal-page.portal-audio-hub-detail .portal-audio-change-request-heading h3,
.portal-page.portal-audio-hub-detail .portal-audio-change-request-history h4,
.portal-page.portal-audio-hub-detail .portal-audio-change-request-row-copy strong,
.portal-page.portal-audio-hub-detail .portal-audio-change-request-empty strong,
.portal-page.portal-audio-hub-detail :is(.portal-media-editor, .portal-media-composer, .portal-media-detail-boundary, .portal-audio-hub-review-pack) .portal-card-title {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-collection-heading p,
.portal-page.portal-audio-hub-detail .portal-audio-hub-collection-lane p,
.portal-page.portal-audio-hub-detail .portal-audio-hub-collection-lane li,
.portal-page.portal-audio-hub-detail .portal-media-item-head p,
.portal-page.portal-audio-hub-detail .portal-audio-change-request-heading p,
.portal-page.portal-audio-hub-detail .portal-audio-change-request-history-heading span,
.portal-page.portal-audio-hub-detail .portal-audio-change-request-row-copy :is(span, small),
.portal-page.portal-audio-hub-detail .portal-audio-change-request-empty span,
.portal-page.portal-audio-hub-detail :is(.portal-field-help, .portal-form-note) {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-collection-lane {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-collection-lane strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-collection-lane b {
  color: var(--portal-action);
}

.portal-page.portal-audio-hub-detail :is(.portal-media-attach-form, .portal-media-filter, .portal-media-editor, .portal-media-composer, .portal-media-detail-boundary, .portal-audio-change-request-form) label.portal-field,
.portal-page.portal-audio-hub-detail .portal-media-checkbox {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail :is(.portal-media-attach-form, .portal-media-filter, .portal-media-editor, .portal-media-composer, .portal-media-detail-boundary, .portal-media-item-card, .portal-audio-change-request-form) label.portal-field > span {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail :is(.portal-media-attach-form, .portal-media-filter, .portal-media-item-card, .portal-audio-change-request-form) .portal-field small {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-media-file-mark {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page.portal-audio-hub-detail .portal-media-favorite {
  border-color: color-mix(in srgb, var(--portal-warning) 42%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-warning) 8%, var(--portal-surface-light));
  color: var(--portal-warning);
}

.portal-page.portal-audio-hub-detail .portal-media-checkbox input {
  accent-color: var(--portal-action);
}

.portal-page.portal-audio-hub-detail .portal-media-composer-result article,
.portal-page.portal-audio-hub-detail .portal-media-composer-result pre {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail .portal-media-composer-result h3 {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail .portal-media-card-meta span {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-review-pack .portal-project-steps li {
  border-top-color: var(--portal-border);
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-review-pack .portal-project-steps li::before {
  background: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-review-pack .portal-project-steps strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-review-pack .portal-project-steps span,
.portal-page.portal-audio-hub-detail .portal-audio-hub-review-pack .portal-project-steps small {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-review-pack .portal-media-policy {
  border-color: color-mix(in srgb, var(--portal-warning) 32%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-warning) 6%, var(--portal-surface-light));
  box-shadow: none;
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-review-pack .portal-media-policy :is(strong, li) {
  color: var(--portal-muted-strong);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stages > div,
.portal-page.portal-audio-hub-detail .portal-audio-change-request-form,
.portal-page.portal-audio-hub-detail .portal-audio-change-request-empty {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stages strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stages span {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stages > div::before {
  background: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stages > div[data-stage="draft"]::before {
  background: var(--portal-action);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stages > div[data-stage="estimate"]::before {
  background: var(--portal-context);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stages > div[data-stage="awaiting_confirmation"]::before {
  background: var(--portal-warning);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stage {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted-strong);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stage[data-stage="draft"] {
  border-color: color-mix(in srgb, var(--portal-action) 42%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 8%, var(--portal-surface-light));
  color: var(--portal-action);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stage[data-stage="estimate"] {
  border-color: color-mix(in srgb, var(--portal-context) 42%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-context) 8%, var(--portal-surface-light));
  color: var(--portal-context);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stage[data-stage="awaiting_confirmation"] {
  border-color: color-mix(in srgb, var(--portal-warning) 42%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-warning) 8%, var(--portal-surface-light));
  color: var(--portal-warning);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stage[data-stage="completed"] {
  border-color: color-mix(in srgb, var(--portal-success) 42%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-success) 8%, var(--portal-surface-light));
  color: var(--portal-success);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-stage:is([data-stage="linked_operation_guarded"], [data-stage="guarded"]) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-muted-strong);
}

.portal-page.portal-audio-hub-detail .portal-media-filter {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-audio-hub-detail .portal-media-attach-form {
  border-bottom-color: var(--portal-border);
}

.portal-page.portal-audio-hub-detail .portal-media-pagination {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-media-tags span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-audio-hub-lane-index {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-audio-hub-detail .portal-version-row {
  border-top-color: var(--portal-border);
}

.portal-page.portal-audio-hub-detail .portal-version-row strong {
  color: var(--portal-ink);
}

.portal-page.portal-audio-hub-detail .portal-version-row small {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-audio-change-request-next {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-field-staged {
  color: var(--portal-muted);
}

.portal-page.portal-audio-hub-detail .portal-notice--warning {
  border-color: color-mix(in srgb, var(--portal-warning) 32%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-warning) 6%, var(--portal-surface-light));
  box-shadow: none;
}

.portal-page.portal-audio-hub-detail .portal-notice--warning strong {
  color: var(--portal-warning);
}

.portal-page.portal-audio-hub-detail .portal-notice--warning p {
  color: var(--portal-muted-strong);
}

@media (max-width: 700px) {
  .portal-page.portal-audio-hub-detail .portal-media-checkbox {
    min-height: 44px;
  }
}

/* Music Prompt Composer is a Web-native planning receipt.  Keep its short
   lived directions readable and calm without making them look like audio,
   a provider response, a job, or a delivery. */
.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-intro h2,
.portal-page.portal-music-prompt-composer :is(.portal-music-prompt-composer-form, .portal-music-prompt-composer-boundary, .portal-music-prompt-composer-result) .portal-card-title,
.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-suggestion-head strong,
.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-usage h3 {
  color: var(--portal-ink);
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-intro p,
.portal-page.portal-music-prompt-composer :is(.portal-music-prompt-composer-form, .portal-music-prompt-composer-boundary, .portal-music-prompt-composer-result) .portal-card-subtitle,
.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-usage p {
  color: var(--portal-muted);
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-intro dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-intro dt {
  color: var(--portal-action);
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-intro dd {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-form {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-form .portal-field > label {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-boundary,
.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-result {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-music-prompt-composer :is(.portal-music-prompt-composer-form, .portal-music-prompt-composer-result) .portal-field small,
.portal-page.portal-music-prompt-composer :is(.portal-form-note, .portal-field-help) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-guard-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-guard-list strong {
  color: var(--portal-ink);
  font-size: 12px;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-guard-list em {
  border-color: color-mix(in srgb, var(--portal-action) 35%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 8%, var(--portal-surface-light));
  color: var(--portal-action);
  font-size: 12px;
}

.portal-page.portal-music-prompt-composer :is(.portal-music-prompt-composer-meta, .portal-music-prompt-composer-tags) span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-suggestions {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-suggestions li {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-suggestions li[data-selected="true"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-index {
  border-color: color-mix(in srgb, var(--portal-action) 35%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 8%, var(--portal-surface-light));
  color: var(--portal-action);
  font-size: 12px;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-suggestion-head em {
  border-color: color-mix(in srgb, var(--portal-context) 35%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-context) 8%, var(--portal-surface-light));
  color: var(--portal-context);
  font-size: 12px;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-suggestions dl > div,
.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-usage > dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-music-prompt-composer :is(.portal-music-prompt-composer-suggestions, .portal-music-prompt-composer-usage) dt {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page.portal-music-prompt-composer :is(.portal-music-prompt-composer-suggestions dd, .portal-music-prompt-composer-suggestions pre, .portal-music-prompt-composer-usage p, .portal-music-prompt-composer-usage dd, .portal-music-prompt-composer-review p, .portal-music-prompt-composer-review li) {
  color: var(--portal-muted);
  font-size: 13px;
  line-height: 1.6;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-usage {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-review {
  border-color: color-mix(in srgb, var(--portal-warning) 32%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-warning) 6%, var(--portal-surface-light));
  box-shadow: none;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-review strong {
  color: var(--portal-warning);
  font-size: 13px;
}

.portal-page.portal-music-prompt-composer .portal-music-prompt-composer-review > div {
  border-top-color: color-mix(in srgb, var(--portal-warning) 26%, var(--portal-border));
}

/* Voice Direction Composer is a text-only planning receipt.  Keep it calm and
   readable without making its three directions resemble a voice preview,
   provider result, generated audio, job, or delivery. */
.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-intro h2,
.portal-page.portal-voice-direction-composer :is(.portal-voice-direction-composer-form, .portal-voice-direction-composer-boundary, .portal-voice-direction-composer-result) .portal-card-title,
.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-suggestion-head strong,
.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-delivery h3 {
  color: var(--portal-ink);
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-intro p,
.portal-page.portal-voice-direction-composer :is(.portal-voice-direction-composer-form, .portal-voice-direction-composer-boundary, .portal-voice-direction-composer-result) .portal-card-subtitle,
.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-delivery p {
  color: var(--portal-muted);
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-intro dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-intro dt {
  color: var(--portal-action);
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-intro dd {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-form {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-form .portal-field > label {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-boundary,
.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-result {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-voice-direction-composer :is(.portal-voice-direction-composer-form, .portal-voice-direction-composer-result) .portal-field small,
.portal-page.portal-voice-direction-composer :is(.portal-form-note, .portal-field-help) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-guard-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-guard-list strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-guard-list em {
  border-color: color-mix(in srgb, var(--portal-action) 35%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 8%, var(--portal-surface-light));
  color: var(--portal-action);
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer :is(.portal-voice-direction-composer-meta, .portal-voice-direction-composer-tags) span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-suggestion-head strong {
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-suggestions {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-suggestions li {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-suggestions li[data-selected="true"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-index {
  border-color: color-mix(in srgb, var(--portal-action) 35%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 8%, var(--portal-surface-light));
  color: var(--portal-action);
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-suggestion-head em {
  border-color: color-mix(in srgb, var(--portal-context) 35%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-context) 8%, var(--portal-surface-light));
  color: var(--portal-context);
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-suggestions dl > div,
.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-delivery > dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-voice-direction-composer :is(.portal-voice-direction-composer-suggestions, .portal-voice-direction-composer-delivery) dt {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer :is(.portal-voice-direction-composer-suggestions dd, .portal-voice-direction-composer-suggestions pre, .portal-voice-direction-composer-delivery p, .portal-voice-direction-composer-delivery dd, .portal-voice-direction-composer-review p, .portal-voice-direction-composer-review li) {
  color: var(--portal-muted);
  font-size: 13px;
  line-height: 1.6;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-delivery {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-review {
  border-color: color-mix(in srgb, var(--portal-warning) 32%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-warning) 6%, var(--portal-surface-light));
  box-shadow: none;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-review strong {
  color: var(--portal-warning);
  font-size: 13px;
}

.portal-page.portal-voice-direction-composer .portal-voice-direction-composer-review > div {
  border-top-color: color-mix(in srgb, var(--portal-warning) 26%, var(--portal-border));
}

/* Account care stays a calm, legible control surface. These routes only guide
   signed Web-owned data actions; the light treatment must not imply a Bot,
   ledger, provider, or automatic-cleanup capability. */
.portal-page.portal-workspace-care .portal-workspace-care-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-workspace-care .portal-workspace-care-intro h2 {
  color: var(--portal-ink);
}

.portal-page.portal-workspace-care .portal-workspace-care-intro p {
  color: var(--portal-muted);
  font-size: 14px;
}

.portal-page.portal-workspace-care .portal-workspace-care-status {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-workspace-care .portal-workspace-care-status-icon,
.portal-page.portal-workspace-care .portal-workspace-care-card-icon {
  border-color: color-mix(in srgb, var(--portal-action) 32%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 8%, var(--portal-surface-light));
  color: var(--portal-action);
}

.portal-page.portal-workspace-care .portal-workspace-care-status strong {
  color: var(--portal-ink);
  font-size: 14px;
}

.portal-page.portal-workspace-care .portal-workspace-care-status small {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-workspace-care .portal-workspace-care-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-workspace-care .portal-workspace-care-card:hover,
.portal-page.portal-workspace-care .portal-workspace-care-card:focus-visible {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  outline: none;
  transform: none;
}

.portal-page.portal-workspace-care .portal-workspace-care-card:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--portal-focus) 28%, transparent);
}

.portal-page.portal-workspace-care .portal-workspace-care-card-copy small {
  color: var(--portal-action);
  font-size: 13px;
}

.portal-page.portal-workspace-care .portal-workspace-care-card-copy strong {
  color: var(--portal-ink);
  font-size: 15px;
}

.portal-page.portal-workspace-care .portal-workspace-care-card-copy > span {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-workspace-care .portal-workspace-care-card-copy em {
  color: var(--portal-action);
  font-size: 13px;
}

.portal-page.portal-workspace-care .portal-workspace-care-boundary li {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-workspace-care .portal-workspace-care-boundary li > span:first-child {
  color: var(--portal-action);
}

.portal-page.portal-workspace-care .portal-workspace-care-boundary strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-workspace-care .portal-workspace-care-boundary small {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-account-data-controls .portal-panel-row {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-account-data-controls .portal-panel-row-icon {
  border: 1px solid color-mix(in srgb, var(--portal-action) 32%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 8%, var(--portal-surface-light));
  color: var(--portal-action);
}

.portal-page.portal-account-data-controls .portal-panel-row strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-account-data-controls .portal-panel-row > div > span:not(.portal-badge) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-account-data-controls .portal-project-steps li {
  border-top-color: var(--portal-border);
}

.portal-page.portal-account-data-controls .portal-project-steps li::before {
  background: var(--portal-action);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--portal-action) 12%, transparent);
}

.portal-page.portal-account-data-controls .portal-project-steps strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-account-data-controls .portal-project-steps span {
  color: var(--portal-muted);
  font-size: 13px;
}

@media (max-width: 700px) {
  .portal-page.portal-workspace-care .portal-workspace-care-status {
    flex: 0 1 auto;
  }
}

/* Image Operations Hub is a Web-native artboard workspace. Keep its
   owner-scoped direction/review data on the same quiet light canvas as the
   rest of the signed app; this does not create an image, provider request, or
   asset preview. */
.portal-page.portal-image-hub .portal-image-hub-overview {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-image-hub-detail .portal-image-hub-detail-board {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-image-hub-detail .portal-image-studio-detail-summary {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) :is(.portal-image-hub-overview, .portal-image-hub-detail-board, .portal-image-studio-detail-summary) :is(h2, h3) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) :is(.portal-image-hub-overview, .portal-image-hub-detail-board, .portal-image-studio-detail-summary) p {
  color: var(--portal-muted);
}

.portal-page.portal-image-hub .portal-image-hub-overview dl > div,
.portal-page.portal-image-hub-detail .portal-image-hub-detail-board dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-image-hub .portal-image-hub-overview dt,
.portal-page.portal-image-hub-detail .portal-image-hub-detail-board dt {
  color: var(--portal-action);
}

.portal-page.portal-image-hub .portal-image-hub-overview dd,
.portal-page.portal-image-hub-detail .portal-image-hub-detail-board dd {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-image-hub-detail .portal-image-studio-detail-summary dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-image-hub-detail .portal-image-studio-detail-summary dt {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-image-hub-detail .portal-image-studio-detail-summary dd {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-image-hub .portal-image-hub-next-steps {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-image-hub .portal-image-hub-step {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-image-hub .portal-image-hub-step:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-image-hub .portal-image-hub-step:focus-visible {
  border-color: var(--portal-focus);
  outline: 3px solid var(--portal-focus) !important;
}

.portal-page.portal-image-hub .portal-image-hub-step strong {
  color: var(--portal-ink);
}

.portal-page.portal-image-hub .portal-image-hub-step span {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-image-hub .portal-image-hub-step b {
  color: var(--portal-action);
  font-size: 13px;
}

.portal-page.portal-image-hub :is(.portal-image-studio-create, .portal-image-studio-boundary, .portal-image-studio-filter, .portal-image-artboard-card, .portal-image-reference-library, .portal-image-reference-picker) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-image-hub .portal-image-artboard-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  transform: none;
}

.portal-page.portal-image-hub .portal-image-artboard-meta span,
.portal-page.portal-image-hub .portal-image-studio-tags span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-image-hub-detail :is(.portal-image-studio-editor, .portal-image-direction-create, .portal-image-studio-estimate, .portal-image-studio-activity, .portal-image-reference-library, .portal-image-reference-picker) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) .portal-image-reference-picker :is(h3, h4, legend, strong) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) .portal-image-reference-picker p {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) .portal-image-reference-list > :is(li, article, a, button) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) .portal-image-reference-list > :is(a, button):hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) .portal-image-reference-list strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) .portal-image-reference-list :is(b, em) {
  color: var(--portal-action);
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) .portal-image-reference-list small {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) :is(.portal-image-studio-pagination, .portal-image-reference-pagination) {
  border-color: var(--portal-border);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-image-hub-detail .portal-image-direction-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-image-hub-detail .portal-image-direction-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  transform: none;
}

.portal-page.portal-image-hub-detail .portal-image-direction-meta span,
.portal-page.portal-image-hub-detail .portal-image-studio-tags span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) .portal-image-studio-guard-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) .portal-image-studio-guard-list strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-image-hub, .portal-image-hub-detail) .portal-image-studio-guard-list em {
  border-color: color-mix(in srgb, var(--portal-action) 32%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-action) 8%, var(--portal-surface-light));
  color: var(--portal-action);
  font-size: 13px;
}

.portal-page.portal-image-hub-detail .portal-image-studio-estimate-grid span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-image-hub-detail .portal-image-studio-estimate-grid strong,
.portal-page.portal-image-hub-detail .portal-image-direction-history > strong,
.portal-page.portal-image-hub-detail .portal-image-version-list strong,
.portal-page.portal-image-hub-detail .portal-image-studio-events strong {
  color: var(--portal-ink);
}

.portal-page.portal-image-hub-detail :is(.portal-image-direction-history > div, .portal-image-version-list > article, .portal-image-studio-events > div) {
  border-color: var(--portal-border);
}

.portal-page.portal-image-hub-detail :is(.portal-image-direction-history > div, .portal-image-version-list p) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-image-hub-detail .portal-image-studio-events small {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-image-hub-detail .portal-image-direction-history em {
  color: var(--portal-action);
}

.portal-page.portal-image-hub-detail .portal-image-studio-events > div > span:first-child {
  background: var(--portal-action);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--portal-action) 12%, transparent);
}

@media (max-width: 700px) {
  .portal-page.portal-image-hub .portal-image-hub-overview dl,
  .portal-page.portal-image-hub-detail .portal-image-hub-detail-board dl {
    grid-template-columns: repeat(auto-fit, minmax(142px, 1fr));
  }
}

/* Final light AI Chat Workspace surface */
.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) :is(.portal-chat-workspace-create, .portal-chat-workspace-boundary, .portal-chat-workspace-filters, .portal-chat-context-card, .portal-chat-turn, .portal-chat-version-list > article, .portal-chat-event-list > div, .portal-chat-execution, .portal-chat-execution-layout > section, .portal-chat-run-card) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-workspace-guard-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-workspace-guard-list strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-workspace-guard-list em {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-thread-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-thread-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) :is(.portal-chat-workspace-meta span, .portal-chat-workspace-tags span, .portal-chat-workspace-pagination, .portal-chat-turn small, .portal-chat-version-list small, .portal-chat-event-list small, .portal-chat-run-card small) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-card-title {
  color: var(--portal-ink);
  font-size: 16px;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) :is(.portal-chat-execution-heading, .portal-chat-run-card h3, .portal-chat-version-list strong, .portal-chat-event-list strong) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-thread-summary dt {
  font-size: 13px;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-context-card > p {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) :is(.portal-chat-turn p, .portal-chat-version-list p, .portal-chat-run-card p, .portal-card-subtitle, .portal-form-note) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-execution-status > span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-execution-status strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-execution-status em {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) .portal-chat-event-list > div > span:first-child {
  background: var(--portal-action);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--portal-action) 12%, transparent);
}

.portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-chat-workspace, .portal-chat-workspace-detail) :is(.portal-chat-workspace-intro dl, .portal-chat-thread-summary dl, .portal-chat-execution-status, .portal-chat-execution-layout, .portal-chat-workspace-guard-list) {
    grid-template-columns: 1fr;
  }
}

/* Final light Document & PDF Workspace surface */
.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(.portal-document-workspace-intro, .portal-document-workspace-detail-summary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(.portal-document-workspace-intro, .portal-document-workspace-detail-summary) h2 {
  color: var(--portal-ink);
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.18;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(.portal-document-workspace-intro, .portal-document-workspace-detail-summary) p {
  color: var(--portal-muted);
  font-size: 14px;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(.portal-document-workspace-intro, .portal-document-workspace-detail-summary) dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(.portal-document-workspace-intro dd, .portal-document-workspace-detail-summary dt) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) .portal-document-workspace-detail-summary dd {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(.portal-document-workspace-create, .portal-document-workspace-editor, .portal-document-plan-create, .portal-document-workspace-boundary, .portal-document-workspace-estimate, .portal-document-workspace-activity, .portal-document-plan-card, .portal-document-plan-handoff, .portal-document-plan-version-list > article, .portal-document-version-list > article, .portal-document-workspace-events > div) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) .portal-document-workspace-guard-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) .portal-document-workspace-guard-list strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) .portal-document-workspace-guard-list em {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) .portal-document-workspace-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) .portal-document-workspace-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(.portal-document-workspace-meta span, .portal-document-plan-meta span, .portal-document-workspace-tags span, .portal-document-workspace-pagination) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) .portal-document-workspace-estimate-grid span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) .portal-document-workspace-estimate-grid strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) .portal-card-title {
  color: var(--portal-ink);
  font-size: 16px;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(.portal-document-plan-handoff h4, .portal-document-plan-version-list strong, .portal-document-version-list strong, .portal-document-workspace-events strong) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(.portal-document-plan-handoff p, .portal-document-plan-handoff small, .portal-document-plan-version-list small, .portal-document-version-list p, .portal-document-version-list small, .portal-document-workspace-events small, .portal-card-subtitle, .portal-form-note) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) .portal-document-workspace-events > div > span:first-child {
  background: var(--portal-action);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--portal-action) 12%, transparent);
}

.portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-document-workspace, .portal-document-workspace-detail) :is(.portal-document-workspace-intro dl, .portal-document-workspace-detail-summary dl, .portal-document-workspace-estimate-grid, .portal-document-workspace-guard-list, .portal-document-workspace-layout, .portal-document-workspace-detail-grid, .portal-document-workspace-history-grid, .portal-document-workspace-grid, .portal-document-plan-grid) {
    grid-template-columns: 1fr;
  }
}

/* Final light Analytics Workspace surface */
.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-intro, .portal-analytics-detail-summary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-intro, .portal-analytics-detail-summary) h2 {
  color: var(--portal-ink);
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.18;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-intro, .portal-analytics-detail-summary) p {
  color: var(--portal-muted);
  font-size: 14px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-intro, .portal-analytics-detail-summary) dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-intro dt {
  color: var(--portal-action);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-intro dd, .portal-analytics-detail-summary dt) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-detail-summary dd {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-create, .portal-analytics-editor, .portal-analytics-metric-create, .portal-analytics-finding-create, .portal-analytics-boundary, .portal-analytics-activity, .portal-analytics-filters, .portal-analytics-metric-card, .portal-analytics-finding-card, .portal-analytics-snapshot-create, .portal-analytics-snapshot-card) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-guard-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-guard-list strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-guard-list em {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-report-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-report-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-meta span, .portal-analytics-tags span, .portal-analytics-references span) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-filters {
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-pagination {
  border-color: var(--portal-border);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-metric-form, .portal-analytics-finding-form, .portal-analytics-snapshot-form) {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-version-list > article {
  border-color: var(--portal-border);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-comparison {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-comparison > div {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-comparison span {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-comparison strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-comparison p {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-metric-card, .portal-analytics-finding-card, .portal-analytics-snapshot-card).is-archived {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  opacity: 1;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-empty {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-empty-icon {
  background: color-mix(in srgb, var(--portal-action) 8%, var(--portal-surface-light));
  color: var(--portal-action);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-empty h3 {
  color: var(--portal-ink);
  font-size: 16px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-empty p {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-card-title {
  color: var(--portal-ink);
  font-size: 16px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-snapshot-card h4 {
  color: var(--portal-ink);
  font-size: 16px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-version-list strong, .portal-analytics-event-list strong) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-snapshot-note, .portal-analytics-finding-body, .portal-analytics-version-list p, .portal-analytics-version-list small, .portal-analytics-event-list small, .portal-card-subtitle, .portal-form-note) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-event-list > div {
  border-color: var(--portal-border);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) .portal-analytics-event-list > div > span:first-child {
  background: var(--portal-action);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--portal-action) 12%, transparent);
}

.portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-analytics-workspace, .portal-analytics-workspace-detail) :is(.portal-analytics-intro dl, .portal-analytics-detail-summary dl, .portal-analytics-guard-list, .portal-analytics-layout, .portal-analytics-detail-grid, .portal-analytics-history-grid, .portal-analytics-report-grid, .portal-analytics-metric-grid, .portal-analytics-finding-grid, .portal-analytics-metric-form .portal-fields, .portal-analytics-snapshot-form .portal-fields, .portal-analytics-comparison) {
    grid-template-columns: 1fr;
  }
}

/* Final light Subtitle Studio surface */
.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-studio-intro, .portal-subtitle-studio-detail-summary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-studio-intro, .portal-subtitle-studio-detail-summary) h2 {
  color: var(--portal-ink);
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.18;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-studio-intro, .portal-subtitle-studio-detail-summary) p {
  color: var(--portal-muted);
  font-size: 14px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-studio-intro, .portal-subtitle-studio-detail-summary) dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-studio-intro dt {
  color: var(--portal-action);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-studio-intro dd, .portal-subtitle-studio-detail-summary dt) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-studio-detail-summary dd {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-studio-create, .portal-subtitle-studio-editor, .portal-subtitle-cue-create, .portal-subtitle-studio-boundary, .portal-subtitle-runtime-estimate, .portal-subtitle-studio-activity, .portal-subtitle-text-preview) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-language-source {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-language-source.is-guarded {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-language-source-facts span {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-language-source-facts strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-language-source-pager {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-language-source-pager.is-capped {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-studio-guard-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-studio-guard-list strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-studio-guard-list em {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-project-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-project-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-project-meta span, .portal-subtitle-cue-meta span, .portal-subtitle-studio-tags span) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-estimate-grid span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-estimate-grid strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-quality {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: var(--portal-shadow);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-quality:is(.is-guarded, .is-archived) {
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-quality-summary span,
.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-quality-track,
.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-quality-metrics > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-quality :is(.portal-card-title, .portal-subtitle-quality-summary strong, .portal-subtitle-quality-track-heading strong, .portal-subtitle-quality-metrics dd, .portal-subtitle-quality-review > strong) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-quality :is(.portal-card-subtitle, .portal-subtitle-quality-summary span, .portal-subtitle-quality-track-heading span, .portal-subtitle-quality-metrics dt, .portal-subtitle-quality-reasons li, .portal-subtitle-quality-clear) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-cue-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-cue-card.is-archived {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  opacity: 1;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-cue-translation {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-cue-form, .portal-subtitle-cue-history) {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-cue-history > div {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-version-list > article {
  border-color: var(--portal-border);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-preview-text {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
  font-size: 12px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-card-title {
  color: var(--portal-ink);
  font-size: 16px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-cue-history > strong, .portal-subtitle-version-list strong, .portal-subtitle-studio-events strong) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-cue-history > div, .portal-subtitle-cue-history em, .portal-subtitle-version-list p, .portal-subtitle-version-list small, .portal-subtitle-studio-events small, .portal-card-subtitle, .portal-form-note) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-studio-events > div {
  border-color: var(--portal-border);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) .portal-subtitle-studio-events > div > span:first-child {
  background: var(--portal-action);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--portal-action) 12%, transparent);
}

.portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-subtitle-studio, .portal-subtitle-studio-detail) :is(.portal-subtitle-studio-intro dl, .portal-subtitle-studio-detail-summary dl, .portal-subtitle-studio-guard-list, .portal-subtitle-studio-layout, .portal-subtitle-studio-detail-grid, .portal-subtitle-studio-history-grid, .portal-subtitle-preview-grid, .portal-subtitle-project-grid, .portal-subtitle-cue-grid, .portal-subtitle-estimate-grid, .portal-subtitle-language-source-facts) {
    grid-template-columns: 1fr;
  }
}

/* Final light Content Studio surface */
.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-operations-summary, .portal-content-operations-authoring-intro, .portal-content-studio-detail-summary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-operations-summary, .portal-content-operations-authoring-intro, .portal-content-studio-detail-summary) h2 {
  color: var(--portal-ink);
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.18;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-operations-summary, .portal-content-operations-authoring-intro, .portal-content-studio-detail-summary) p {
  color: var(--portal-muted);
  font-size: 14px;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-operations-summary, .portal-content-studio-detail-summary) dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-content-operations-summary dt {
  color: var(--portal-action);
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-operations-summary dd, .portal-content-studio-detail-summary dt) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-content-studio-detail-summary dd {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-operations-primary, .portal-content-operations-kinds, .portal-content-operations-briefs, .portal-content-operations-activity-card, .portal-content-operations-boundary, .portal-content-studio-create, .portal-content-studio-policy, .portal-content-studio-editor, .portal-content-variant-create, .portal-content-studio-activity) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-field > label {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-studio-meta span, .portal-content-studio-tags span, .portal-content-selected) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-content-variant-card.is-selected {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  box-shadow: inset 0 0 0 1px var(--portal-border-strong);
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-content-studio-policy .portal-project-steps li {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-content-studio-policy .portal-project-steps li::before {
  background: var(--portal-action);
  box-shadow: none;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-content-studio-policy .portal-project-steps strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-content-studio-policy .portal-project-steps span {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-variant-form, .portal-content-variant-history) {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-content-variant-history > div {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-content-version-list > article {
  border-color: var(--portal-border);
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) .portal-content-activity-list > div {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-variant-history > strong, .portal-content-version-list strong, .portal-content-activity-list strong) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-variant-history > div, .portal-content-variant-history em, .portal-content-version-list p, .portal-content-version-list small, .portal-content-activity-list small, .portal-card-subtitle, .portal-form-note, .portal-content-studio-pagination) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-operations-kind-card, .portal-content-studio-card):hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-content-operations-board, .portal-content-studio-authoring, .portal-content-studio-workspace-detail) :is(.portal-content-operations-summary dl, .portal-content-studio-detail-summary dl, .portal-content-operations-workspace, .portal-content-operations-boundary-grid, .portal-content-operations-kind-grid, .portal-content-operations-authoring-layout, .portal-content-studio-detail-grid, .portal-content-studio-history-grid, .portal-content-studio-grid, .portal-content-variant-grid, .portal-content-variant-form .portal-fields) {
    grid-template-columns: 1fr;
  }
}

/* Final light Voice Studio surface */
.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-studio-intro, .portal-voice-studio-detail-summary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-studio-intro, .portal-voice-studio-detail-summary) h2 {
  color: var(--portal-ink);
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.18;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-studio-intro, .portal-voice-studio-detail-summary) p {
  color: var(--portal-muted);
  font-size: 14px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-studio-intro, .portal-voice-studio-detail-summary) dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-studio-intro dt {
  color: var(--portal-action);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-studio-intro dd, .portal-voice-studio-detail-summary dt) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-studio-detail-summary dd {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-studio-create, .portal-voice-studio-editor, .portal-voice-script-create, .portal-voice-studio-policy, .portal-voice-studio-composer, .portal-voice-studio-activity, .portal-voice-studio-boundary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-field > label {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-studio-guard-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-studio-guard-list strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-studio-guard-list em {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-vault-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-vault-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-vault-card.is-default {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  box-shadow: inset 0 0 0 1px var(--portal-border-strong);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-script-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-vault-meta span, .portal-voice-script-meta span, .portal-voice-studio-tags span, .portal-voice-reference-list span) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-default {
  border-color: color-mix(in srgb, var(--portal-action) 35%, var(--portal-border));
  background: var(--portal-surface-soft);
  color: var(--portal-action);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-policy-flag {
  border-color: color-mix(in srgb, var(--portal-danger) 35%, var(--portal-border));
  background: color-mix(in srgb, var(--portal-danger) 6%, var(--portal-surface-light));
  color: var(--portal-danger);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-studio-filter {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-studio-pagination {
  border-color: var(--portal-border);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-cue-sheet {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-cue-sheet h4 {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-cue-sheet p {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-cue-metrics span {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-cue-sheet li {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-cue-sheet li > span {
  background: var(--portal-action);
  color: var(--portal-on-action);
  font-size: 12px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-cue-sheet time, .portal-voice-cue-sheet small) {
  color: var(--portal-muted);
  font: 12px/1.5 var(--portal-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-script-form, .portal-voice-script-history) {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-script-history > div {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-version-list > article {
  border-color: var(--portal-border);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-card-title {
  color: var(--portal-ink);
  font-size: 16px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-script-history > strong, .portal-voice-version-list strong, .portal-voice-studio-events strong) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-script-history > div, .portal-voice-script-history em, .portal-voice-version-list p, .portal-voice-version-list small, .portal-voice-studio-events small, .portal-card-subtitle, .portal-form-note) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-studio-events > div {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) .portal-voice-studio-events > div > span:first-child {
  background: var(--portal-action);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--portal-action) 12%, transparent);
}

.portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-voice-studio, .portal-voice-studio-detail) :is(.portal-voice-studio-intro dl, .portal-voice-studio-detail-summary dl, .portal-voice-studio-guard-list, .portal-voice-studio-layout, .portal-voice-studio-detail-grid, .portal-voice-studio-history-grid, .portal-voice-vault-grid, .portal-voice-script-grid, .portal-voice-script-form .portal-fields) {
    grid-template-columns: 1fr;
  }
}

/* Final light Image Studio surface */
.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-studio-intro, .portal-image-studio-detail-summary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-studio-intro, .portal-image-studio-detail-summary) h2 {
  color: var(--portal-ink);
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.18;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-studio-intro, .portal-image-studio-detail-summary) p {
  color: var(--portal-muted);
  font-size: 14px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-studio-intro, .portal-image-studio-detail-summary) dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-studio-intro dt {
  color: var(--portal-action);
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-studio-intro dd, .portal-image-studio-detail-summary dt) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-studio-detail-summary dd {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-studio-create, .portal-image-studio-editor, .portal-image-direction-create, .portal-image-studio-estimate, .portal-image-reference-library, .portal-image-reference-picker, .portal-image-studio-activity, .portal-image-studio-boundary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-field > label {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-studio-estimate-grid span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-artboard-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-direction-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-artboard-card, .portal-image-direction-card) .portal-card-title {
  color: var(--portal-ink);
  font-size: 16px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-artboard-card, .portal-image-direction-card) .portal-card-subtitle {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-artboard-card, .portal-image-direction-card, .portal-image-reference-list > :is(a, button)):hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-direction-card.is-archived {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  opacity: 1;
  box-shadow: none;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-artboard-meta span, .portal-image-direction-meta span, .portal-image-studio-tags span) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-direction-history em {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-studio-guard-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-studio-guard-list strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-studio-guard-list em {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-reference-list > :is(li, article, a, button) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-reference-list strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-reference-list small {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-reference-list > .is-unavailable strong {
  color: var(--portal-danger);
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-studio-filter, .portal-image-reference-filter) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-studio-pagination, .portal-image-reference-pagination) {
  border-color: var(--portal-border);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-direction-form, .portal-image-direction-history) {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-direction-history > div {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-version-list > article {
  border-color: var(--portal-border);
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-studio-events > div {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-direction-history > strong, .portal-image-version-list strong, .portal-image-studio-events strong) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-direction-history > div, .portal-image-version-list p, .portal-image-version-list small, .portal-image-studio-events small, .portal-card-subtitle, .portal-form-note) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) .portal-image-studio-events > div > span:first-child {
  background: var(--portal-action);
  box-shadow: none;
}

.portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-image-studio, .portal-image-studio-detail) :is(.portal-image-studio-intro dl, .portal-image-studio-detail-summary dl, .portal-image-studio-layout, .portal-image-studio-detail-grid, .portal-image-studio-history-grid, .portal-image-artboard-grid, .portal-image-direction-grid, .portal-image-reference-library-grid, .portal-image-studio-estimate-grid, .portal-image-studio-guard-list, .portal-image-direction-form .portal-fields) {
    grid-template-columns: 1fr;
  }
}

/* Final light Music and SFX surface */
.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-library-intro, .portal-music-prompt-composer-intro, .portal-music-directions-intro, .portal-sfx-cue-sheet-intro) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-library-intro, .portal-music-prompt-composer-intro, .portal-music-directions-intro, .portal-sfx-cue-sheet-intro) h2 {
  color: var(--portal-ink);
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.18;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-library-intro, .portal-music-prompt-composer-intro, .portal-music-directions-intro, .portal-sfx-cue-sheet-intro) p {
  color: var(--portal-muted);
  font-size: 14px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-intro, .portal-music-directions-intro, .portal-sfx-cue-sheet-intro) dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-intro, .portal-music-directions-intro, .portal-sfx-cue-sheet-intro) dt {
  color: var(--portal-action);
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-intro dd, .portal-music-directions-intro dd, .portal-sfx-cue-sheet-intro dd) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-library-board, .portal-music-library-filter, .portal-music-library-guard, .portal-music-library-boundary, .portal-music-prompt-composer-form, .portal-music-prompt-composer-boundary, .portal-music-prompt-composer-result, .portal-music-directions-form, .portal-music-directions-boundary, .portal-music-directions-result, .portal-sfx-cue-sheet-form, .portal-sfx-cue-sheet-boundary, .portal-sfx-cue-sheet-result) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) .portal-field > label {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) .portal-music-library-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) .portal-music-library-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-library-card-copy h3, .portal-music-library-boundary strong, .portal-music-library-meta dd) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-library-card-copy p, .portal-music-library-card-footer > span, .portal-music-library-boundary span, .portal-music-library-meta dt, .portal-music-library-pagination) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) .portal-music-library-meta > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-directions-preset-card, .portal-sfx-cue-sheet-preset-card) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-directions-preset-card, .portal-sfx-cue-sheet-preset-card):hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-directions-preset-card, .portal-sfx-cue-sheet-preset-card)[data-selected="true"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  box-shadow: inset 0 0 0 1px var(--portal-border-strong);
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-directions-picker legend, .portal-sfx-cue-sheet-picker legend, .portal-music-directions-preset-copy strong, .portal-sfx-cue-sheet-preset-copy strong, .portal-music-directions-list-head strong, .portal-sfx-cue-sheet-list-head strong) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-directions-preset-copy small, .portal-sfx-cue-sheet-preset-copy small, .portal-music-directions-selection, .portal-sfx-cue-sheet-selection, .portal-music-directions-list p, .portal-sfx-cue-sheet-list p, .portal-music-directions-list dd, .portal-sfx-cue-sheet-list dd) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-guard-list span, .portal-music-directions-guard-list span, .portal-sfx-cue-sheet-guard-list span) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-guard-list strong, .portal-music-directions-guard-list strong, .portal-sfx-cue-sheet-guard-list strong) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-guard-list em, .portal-music-directions-guard-list em, .portal-sfx-cue-sheet-guard-list em) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-meta span, .portal-music-prompt-composer-tags span, .portal-music-directions-meta span, .portal-sfx-cue-sheet-meta span, .portal-music-library-tags span) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-suggestions, .portal-music-prompt-composer-usage) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-suggestions li, .portal-music-directions-list li, .portal-sfx-cue-sheet-list li) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-suggestions dl > div, .portal-music-prompt-composer-usage > dl > div, .portal-music-directions-list dl > div, .portal-sfx-cue-sheet-list dl > div) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) .portal-music-prompt-composer-suggestions li[data-selected="true"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: inset 0 0 0 1px var(--portal-border-strong);
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-index, .portal-music-directions-index, .portal-sfx-cue-sheet-index, .portal-music-prompt-composer-suggestion-head em, .portal-music-directions-list-head em, .portal-sfx-cue-sheet-list-head em) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
  font-size: 12px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-suggestion-head strong, .portal-music-prompt-composer-usage h3, .portal-music-prompt-composer-suggestions dd, .portal-music-prompt-composer-usage dd, .portal-music-directions-list dd, .portal-sfx-cue-sheet-list dd) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-suggestions dt, .portal-music-prompt-composer-usage dt, .portal-music-directions-list dt, .portal-sfx-cue-sheet-list dt, .portal-music-prompt-composer-suggestions pre, .portal-music-prompt-composer-usage p) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-review, .portal-music-directions-review, .portal-sfx-cue-sheet-review) {
  border-color: color-mix(in srgb, var(--portal-warning) 32%, var(--portal-border));
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-review, .portal-music-directions-review, .portal-sfx-cue-sheet-review) strong {
  color: var(--portal-warning);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-prompt-composer-review p, .portal-music-prompt-composer-review ul, .portal-music-directions-review ul, .portal-sfx-cue-sheet-review ul, .portal-sfx-cue-sheet-notice, .portal-form-note) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) .portal-sfx-cue-sheet-notice {
  border-left-color: var(--portal-action);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-directions-result[data-stale="true"], .portal-sfx-cue-sheet-result[data-stale="true"]) {
  border-color: color-mix(in srgb, var(--portal-warning) 45%, var(--portal-border));
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-directions-result[data-stale="true"]::after, .portal-sfx-cue-sheet-result[data-stale="true"]::after) {
  color: var(--portal-warning);
  font-size: 13px;
}

.portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-music-library, .portal-music-prompt-composer, .portal-music-directions, .portal-sfx-cue-sheet) :is(.portal-music-library-grid, .portal-music-library-meta, .portal-music-prompt-composer-intro dl, .portal-music-prompt-composer-layout, .portal-music-prompt-composer-guard-list, .portal-music-prompt-composer-suggestions dl, .portal-music-prompt-composer-usage, .portal-music-prompt-composer-usage > dl, .portal-music-directions-intro dl, .portal-music-directions-layout, .portal-music-directions-preset-grid, .portal-music-directions-guard-list, .portal-sfx-cue-sheet-intro dl, .portal-sfx-cue-sheet-layout, .portal-sfx-cue-sheet-preset-grid, .portal-sfx-cue-sheet-guard-list) {
    grid-template-columns: 1fr;
  }
}

/* Final light Project Center surface */
.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-operations-summary, .portal-project-operations-authoring-intro, .portal-project-summary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-operations-summary, .portal-project-operations-authoring-intro, .portal-project-summary) h2 {
  color: var(--portal-ink);
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.18;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-operations-summary, .portal-project-operations-authoring-intro, .portal-project-summary) p {
  color: var(--portal-muted);
  font-size: 14px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-operations-summary dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-operations-summary dt {
  color: var(--portal-action);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-operations-summary dd {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-summary dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-summary dt {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-summary dd {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-operations-primary, .portal-project-operations-library, .portal-project-operations-boundary, .portal-project-operations-create) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-detail-grid > .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-operations-primary h2, .portal-project-operations-library .portal-card-title, .portal-project-operations-boundary .portal-card-title, .portal-project-operations-create .portal-card-title, .portal-project-detail-grid > .portal-card .portal-card-title) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-operations-primary p, .portal-project-operations-create-guard span, .portal-project-operations-library .portal-card-subtitle, .portal-project-operations-boundary .portal-card-subtitle, .portal-project-operations-create .portal-card-subtitle, .portal-project-detail-grid > .portal-card .portal-card-subtitle, .portal-form-note) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-operations-create-guard {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-operations-create-guard strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-filter {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-pagination {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-card .portal-card-title {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-document strong, .portal-project-editor .portal-card-title) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-card .portal-card-subtitle, .portal-project-card .portal-summary-key, .portal-project-card .portal-summary-value) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-document small {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-document {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-document-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-steps li {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-steps strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-steps span {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-steps li::before {
  background: var(--portal-action);
  box-shadow: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-new-document, .portal-project-history) {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-editor {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-version-list {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-version-row {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-version-row strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-version-row small {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-package-panel, .portal-project-package-actions) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-package-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-package-meta > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-package-meta dt, .portal-project-package-meta dd) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-package-meta dd {
  color: var(--portal-ink);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) .portal-project-package-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-package-actions strong, .portal-project-package-card .portal-card-title) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-package-actions span, .portal-project-package-card .portal-card-subtitle) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-card, .portal-project-document, .portal-project-package-card):hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-button, .portal-input, .portal-select, .portal-textarea) {
  min-height: 44px;
}

.portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-project-center, .portal-project-center-authoring, .portal-project-detail) :is(.portal-project-operations-summary, .portal-project-operations-authoring-intro, .portal-project-operations-summary dl, .portal-project-summary dl, .portal-project-operations-workspace, .portal-project-operations-authoring-layout, .portal-project-grid, .portal-project-filter .portal-fields, .portal-project-detail-grid, .portal-project-package-grid, .portal-project-package-meta) {
    grid-template-columns: 1fr;
  }
}

/* Final light Asset Vault surface */
.portal-page.portal-asset-vault .portal-vault-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page.portal-asset-vault .portal-vault-intro h2 {
  color: var(--portal-ink);
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.18;
}

.portal-page.portal-asset-vault .portal-vault-intro p {
  color: var(--portal-muted);
  font-size: 14px;
}

.portal-page.portal-asset-vault .portal-vault-intro dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-asset-vault .portal-vault-intro dt {
  color: var(--portal-action);
}

.portal-page.portal-asset-vault .portal-vault-intro dd {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-asset-vault .portal-card-title {
  color: var(--portal-ink);
}

.portal-page.portal-asset-vault .portal-card-subtitle {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-field > :is(span, label) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-asset-vault :is(.portal-field-help, .portal-form-note) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault :is(.portal-input, .portal-select, .portal-textarea) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page.portal-asset-vault .portal-vault-dropzone {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page.portal-asset-vault :is(.portal-vault-dropzone:hover, .portal-vault-dropzone:focus-within) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-asset-vault .portal-vault-dropzone-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-asset-vault .portal-vault-dropzone strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-vault-dropzone small {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-vault-file-input {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-vault-file-input::file-selector-button {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-asset-vault .portal-vault-filter {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-asset-vault .portal-vault-pagination {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-vault-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-asset-vault .portal-vault-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-asset-vault .portal-vault-card .portal-card-title {
  color: var(--portal-ink);
  font-size: 16px;
}

.portal-page.portal-asset-vault .portal-vault-card .portal-card-subtitle {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-vault-file-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page.portal-asset-vault .portal-vault-meta > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-asset-vault .portal-vault-meta dt {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-vault-meta dd {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-project-steps li {
  border-top-color: var(--portal-border);
}

.portal-page.portal-asset-vault .portal-project-steps strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-project-steps span {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-project-steps li::before {
  background: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-asset-vault .portal-summary-item {
  border-bottom-color: var(--portal-border);
}

.portal-page.portal-asset-vault .portal-summary-key {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-summary-value {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-panel-row {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-asset-vault .portal-panel-row strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-panel-row span {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-panel-row-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-asset-vault .portal-empty {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-asset-vault .portal-empty h3 {
  color: var(--portal-ink);
}

.portal-page.portal-asset-vault .portal-empty p {
  color: var(--portal-muted);
}

.portal-page.portal-asset-vault .portal-state h2 {
  color: var(--portal-ink);
}

.portal-page.portal-asset-vault .portal-state p {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault .portal-state-meta span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page.portal-asset-vault :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page.portal-asset-vault :is(.portal-vault-intro, .portal-vault-intro dl, .portal-vault-layout, .portal-vault-grid, .portal-vault-meta, .portal-vault-filter .portal-fields) {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-asset-vault :is(.portal-button, .portal-input, .portal-select, .portal-textarea, .portal-vault-file-input::file-selector-button) {
    min-height: 44px;
  }
}

/* Final light Workboard surface */
.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--portal-border);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-tabs a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  box-shadow: none;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: border-color 160ms ease, background 160ms ease, color 160ms ease;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-tabs a:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-tabs a[aria-current="page"] {
  border-color: var(--portal-action);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-tabs .portal-workboard-tabs-new {
  margin-left: auto;
  border-color: var(--portal-action);
  background: var(--portal-action);
  color: var(--portal-on-action);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-tabs .portal-workboard-tabs-new--disabled {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  cursor: not-allowed;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-intro, .portal-workboard-detail-summary) {
  gap: 24px;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-intro h2, .portal-workboard-detail-summary h2) {
  color: var(--portal-ink);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.16;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-intro p, .portal-workboard-detail-summary p) {
  color: var(--portal-muted);
  font-size: 14px;
  line-height: 1.65;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-intro dl, .portal-workboard-detail-summary dl) {
  gap: 10px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-intro dl > div, .portal-workboard-detail-summary dl > div) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-intro dt, .portal-workboard-detail-summary dd) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-intro dd, .portal-workboard-detail-summary dt) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-card, .portal-workboard-board-card, .portal-workboard-library) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-board-card {
  overflow-x: auto;
  scrollbar-color: var(--portal-border-strong) var(--portal-surface-light);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-board {
  gap: 12px;
  min-width: 1120px;
  padding: 4px 2px 10px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-column {
  gap: 12px;
  min-height: 320px;
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-column > header span {
  color: var(--portal-ink);
  font-size: 11px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-column > header b {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-column-empty {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-card {
  gap: 11px;
  min-height: 172px;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
  transition: border-color 160ms ease, background 160ms ease;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-card h3, .portal-workboard-list-title b) {
  color: var(--portal-ink);
  font-size: 14px;
  line-height: 1.42;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-card h3 a:hover {
  color: var(--portal-action);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-card p, .portal-workboard-card footer, .portal-workboard-list-title small, .portal-workboard-list-meta small) {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-card-actions .portal-button {
  min-height: 36px;
  padding: 8px 10px;
  font-size: 12px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-card-move {
  color: var(--portal-action);
  font-size: 12px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-card-move:hover {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-priority {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 10px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-priority[data-priority="low"] {
  border-color: var(--portal-context);
  color: var(--portal-context);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-priority[data-priority="normal"] {
  border-color: var(--portal-action);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-priority[data-priority="high"] {
  border-color: var(--portal-ink);
  color: var(--portal-ink);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-priority[data-priority="urgent"] {
  border-color: var(--portal-focus);
  background: var(--portal-surface-soft);
  color: var(--portal-focus);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-reference-list span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 11px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-reference-list b {
  color: var(--portal-action);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-filter {
  gap: 12px;
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-pagination {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-pagination .portal-button {
  min-height: 40px;
  padding: 9px 12px;
  font-size: 12px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-list-row {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
  text-decoration: none;
  transition: border-color 160ms ease, background 160ms ease;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-list-row:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-editor, .portal-workboard-guide, .portal-workboard-lifecycle, .portal-workboard-checklist-card) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-guide li::before {
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-guide li b {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-guide li span {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-reference-picker {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-reference-picker :is(legend, strong) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-reference-picker p {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-reference-options label {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-reference-options input {
  accent-color: var(--portal-action);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-reference-options span {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-reference-options b {
  color: var(--portal-ink);
  font-size: 10px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-state-form, .portal-workboard-checklist-add) label {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-state-form select, .portal-workboard-checklist-add input) {
  min-height: 44px;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-state-form select:focus, .portal-workboard-checklist-add input:focus) {
  border-color: var(--portal-focus);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-checklist li {
  border-top-color: var(--portal-border);
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-checklist li.is-done span:last-child {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-checklist button, .portal-workboard-checkmark) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-checklist button:hover {
  border-color: var(--portal-action);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-progress {
  color: var(--portal-action);
  font-size: 12px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-history {
  border-top: 1px solid var(--portal-border);
  color: var(--portal-muted);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-history > h3 {
  color: var(--portal-ink);
  font-size: 14px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-version-list > article {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-version-list b, .portal-workboard-events b) {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-version-list small, .portal-workboard-version-list p, .portal-workboard-events small) {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-events > div {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-events > div > span:first-child {
  background: var(--portal-action);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-detail > .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) :is(h2, h3) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-card, .portal-workboard-list-row)[data-workboard-state="archived"] {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-card, .portal-workboard-list-row)[data-workboard-state="archived"] :is(h3, b, small, p, footer) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(button, input, select, textarea):disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

.portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-tabs {
    align-items: stretch;
  }

  .portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-tabs a {
    flex: 1 1 auto;
  }

  .portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-tabs .portal-workboard-tabs-new {
    margin-left: 0;
  }

  .portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-intro, .portal-workboard-detail-summary, .portal-workboard-intro dl, .portal-workboard-detail-summary dl, .portal-workboard-editor-layout, .portal-workboard-detail-grid, .portal-workboard-history-grid, .portal-workboard-board, .portal-workboard-filter .portal-fields, .portal-workboard-reference-options, .portal-workboard-list-meta) {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-board {
    min-width: 0;
  }

  .portal-page.portal-workboard .portal-workboard-board-card {
    overflow-x: visible;
    max-width: 100%;
  }

  .portal-page.portal-workboard .portal-workboard-board {
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }

  .portal-page.portal-workboard .portal-workboard-column {
    min-width: 0;
    width: 100%;
  }

  .portal-page.portal-workboard :is(.portal-workboard-card, .portal-workboard-card h3, .portal-workboard-card h3 a, .portal-workboard-card p, .portal-workboard-card footer) {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) .portal-workboard-list-row {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-workboard-state-form, .portal-workboard-checklist-add) {
    align-items: stretch;
    flex-direction: column;
  }

  .portal-page:is(.portal-workboard, .portal-workboard-new, .portal-workboard-detail) :is(.portal-button, .portal-input, .portal-select, .portal-textarea, .portal-workboard-tabs a, .portal-workboard-state-form select, .portal-workboard-checklist-add input) {
    min-height: 44px;
  }
}

/* Final light Campaign Planner surface */
.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-operations-summary, .portal-campaign-operations-authoring-intro) {
  gap: 24px;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-operations-summary h2, .portal-campaign-operations-authoring-intro h2) {
  color: var(--portal-ink);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.16;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-operations-summary p, .portal-campaign-operations-authoring-intro p) {
  color: var(--portal-muted);
  font-size: 14px;
  line-height: 1.65;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-summary dl {
  gap: 10px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-summary dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-summary dt {
  color: var(--portal-action);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-summary dd {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-operations-primary, .portal-campaign-operations-create-guard, .portal-campaign-operations-library, .portal-campaign-operations-boundary, .portal-campaign-operations-authoring .portal-campaign-operations-create, .portal-campaign-boundary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-primary h2 {
  color: var(--portal-ink);
  font-size: 18px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-operations-primary p, .portal-campaign-operations-create-guard span, .portal-campaign-operations-authoring-actions > span) {
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-create-guard strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-quick-links a {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-quick-links a:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-quick-links strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-quick-links span {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-operations-steps li, .portal-campaign-facts > div, .portal-campaign-edit, .portal-campaign-review) {
  border-color: var(--portal-border);
  border-top-color: var(--portal-border);
  border-bottom-color: var(--portal-border);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-operations-steps strong, .portal-campaign-facts dd, .portal-campaign-edit > summary) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-operations-steps span, .portal-campaign-facts dt) {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-card, .portal-campaign-timeline-item, .portal-calendar-agenda-item) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-card, .portal-campaign-timeline-item, .portal-calendar-agenda-item):hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-card h3, .portal-campaign-card h3 a, .portal-campaign-timeline-item strong, .portal-calendar-agenda-item strong) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-card .portal-eyebrow, .portal-campaign-timeline-item span, .portal-calendar-agenda-item b) {
  color: var(--portal-action);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-card-head p, .portal-campaign-timeline-item em, .portal-calendar-agenda-item em, .portal-calendar-agenda-item time) {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-destination {
  color: var(--portal-action);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-destination:hover {
  color: var(--portal-action-hover);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-edit > summary::after {
  color: var(--portal-action);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-metrics, .portal-campaign-timeline) {
  gap: 12px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-metrics .portal-metric {
  min-height: 120px;
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-metrics .portal-metric :is(span, em) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-metrics .portal-metric strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-filter {
  gap: 14px;
  padding: 14px;
  border: 1px solid var(--portal-border);
  border-radius: 14px;
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar {
  gap: 10px;
  padding-bottom: 8px;
  scrollbar-color: var(--portal-border-strong) var(--portal-surface-light);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-calendar-weekdays, .portal-calendar-grid) {
  gap: 8px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-weekdays span {
  color: var(--portal-muted);
  font-size: 11px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-cell {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-cell.is-today {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-day {
  color: var(--portal-ink);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-cell.is-today .portal-calendar-day {
  background: var(--portal-action);
  color: var(--portal-on-action);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-event {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-event:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-event[data-status="review"] {
  border-color: var(--portal-warning);
  color: var(--portal-warning);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-calendar-event[data-status="approved"], .portal-calendar-event[data-status="scheduled"]) {
  border-color: var(--portal-success);
  color: var(--portal-success);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-event[data-status="archived"] {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  opacity: 1;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar-overflow {
  color: var(--portal-muted);
  font-size: 11px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) :is(h2, h3) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

.portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(button, input, select, textarea):disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-campaign-operations-summary, .portal-campaign-operations-authoring-intro, .portal-campaign-operations-authoring-layout, .portal-campaign-operations-workspace, .portal-work-grid, .portal-campaign-board, .portal-campaign-metrics, .portal-campaign-timeline, .portal-calendar-filter .portal-fields) {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-summary dl {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-campaign-operations-primary {
    align-items: stretch;
    flex-direction: column;
  }

  .portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) .portal-calendar {
    overflow-x: auto;
  }

  .portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-calendar-weekdays, .portal-calendar-grid) {
    min-width: 650px;
  }

  .portal-page:is(.portal-campaign-planner, .portal-campaign-detail, .portal-campaign-calendar, .portal-campaign-approvals) :is(.portal-button, .portal-input, .portal-select, .portal-textarea, .portal-calendar-filter input, .portal-calendar-filter select) {
    min-height: 44px;
  }
}

/* Final light Memory and Prompt Library surface */
.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-intro, .portal-prompt-library-intro, .portal-prompt-library-detail-summary) {
  gap: 24px;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-intro h2, .portal-prompt-library-intro h2, .portal-prompt-library-detail-summary h2) {
  color: var(--portal-ink);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.16;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-intro p, .portal-prompt-library-intro p, .portal-prompt-library-detail-summary p) {
  color: var(--portal-muted);
  font-size: 14px;
  line-height: 1.65;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-intro dl, .portal-prompt-library-intro dl, .portal-prompt-library-detail-summary dl) {
  gap: 10px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-intro dl > div, .portal-prompt-library-intro dl > div, .portal-prompt-library-detail-summary dl > div) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-intro dt, .portal-prompt-library-intro dt, .portal-prompt-library-detail-summary dd) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-intro dd, .portal-prompt-library-intro dd, .portal-prompt-library-detail-summary dt) {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-create, .portal-memory-boundary, .portal-memory-editor, .portal-prompt-library-create, .portal-prompt-library-editor, .portal-prompt-library-boundary, .portal-prompt-library-preview) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-filter, .portal-prompt-library-filter) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-pagination, .portal-prompt-library-pagination) {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-pagination .portal-button, .portal-prompt-library-pagination .portal-button) {
  min-height: 40px;
  padding: 9px 12px;
  font-size: 12px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-note {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-note:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-note strong {
  color: var(--portal-ink);
  font-size: 14px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-note small, .portal-memory-note-excerpt) {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-note-footer > b {
  color: var(--portal-action);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-tags span, .portal-memory-priority, .portal-prompt-library-meta span, .portal-prompt-library-tags span) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  font-size: 11px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-priority[data-priority="urgent"] {
  border-color: var(--portal-danger);
  color: var(--portal-danger);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-priority[data-priority="important"] {
  border-color: var(--portal-warning);
  color: var(--portal-warning);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-linked {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-linked:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-linked strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-linked small {
  color: var(--portal-muted);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-reminder-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-reminder-meta > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-reminder-meta dt {
  color: var(--portal-muted);
  font-size: 11px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-reminder-meta dd {
  color: var(--portal-ink);
  font-size: 12px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-overdue {
  border-color: var(--portal-warning);
  background: var(--portal-surface-soft);
  color: var(--portal-warning);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-reminder-edit {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-reminder-edit > summary {
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-event {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-event > span:first-child {
  color: var(--portal-action);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-event strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-memory-event small {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-card :is(.portal-card-title, .portal-card-title a) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-card .portal-card-subtitle {
  color: var(--portal-muted);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-preview-result {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-preview-result :is(h3, h4) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-preview-result p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-preview-result pre {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-import {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-prompt-library-import summary, .portal-prompt-library-import code) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-import > p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-provenance dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-provenance dt {
  color: var(--portal-muted);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-provenance dd {
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-events > div {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-events > div > span:first-child {
  background: var(--portal-action);
  box-shadow: none;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-events strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-events small {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) :is(h2, h3) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

.portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(button, input, select, textarea):disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-intro, .portal-prompt-library-intro, .portal-prompt-library-detail-summary, .portal-memory-layout, .portal-memory-content, .portal-memory-filter .portal-fields, .portal-prompt-library-layout, .portal-prompt-library-detail-grid, .portal-memory-reminder-grid, .portal-prompt-library-grid, .portal-prompt-library-provenance dl) {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-memory-intro dl, .portal-prompt-library-intro dl, .portal-prompt-library-detail-summary dl, .portal-memory-reminder-meta) {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) .portal-prompt-library-filter {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-memory-center, .portal-memory-reminders, .portal-prompt-library, .portal-prompt-library-detail) :is(.portal-button, .portal-input, .portal-select, .portal-textarea, .portal-memory-filter input, .portal-memory-filter select) {
    min-height: 44px;
  }
}

/* Final light Support Desk surface */
.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-intro, .portal-support-admin-intro, .portal-support-case-hero, .portal-support-care-heading) {
  gap: 24px;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-intro h2, .portal-support-admin-intro h2, .portal-support-case-hero h2, .portal-support-care-heading h2) {
  color: var(--portal-ink);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.16;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-intro p, .portal-support-admin-intro p, .portal-support-case-hero p, .portal-support-care-heading p) {
  color: var(--portal-muted);
  font-size: 14px;
  line-height: 1.65;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-intro dl, .portal-support-admin-intro dl, .portal-support-case-hero dl, .portal-support-care-heading dl) {
  gap: 10px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-intro dl > div, .portal-support-admin-intro dl > div, .portal-support-case-hero dl > div, .portal-support-care-heading dl > div) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-intro dt, .portal-support-admin-intro dt, .portal-support-case-hero dt, .portal-support-care-heading dd) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-intro dd, .portal-support-admin-intro dd, .portal-support-case-hero dd, .portal-support-case-hero dd small, .portal-support-care-heading dt) {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-metrics .portal-metric {
  min-height: 120px;
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-metrics .portal-metric :is(span, em) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-metrics .portal-metric strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-intake, .portal-support-boundary, .portal-support-advisor, .portal-support-consultation, .portal-support-care-board) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-advisor-form, .portal-support-consultation-form, .portal-support-filter) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-advisor-result, .portal-support-consultation-result) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-advisor-result[data-state="ready"], .portal-support-consultation-result[data-state="ready"]) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-advisor-result[data-state="guarded"], .portal-support-consultation-result[data-state="guarded"]) {
  border-color: var(--portal-warning);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-advisor-result h3, .portal-support-consultation-result h3, .portal-support-consultation-result h4) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-advisor-result p, .portal-support-consultation-result p, .portal-support-advisor-actions > span, .portal-support-consultation-actions > span) {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-consultation-result pre {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-advisor-checklist li, .portal-support-advisor-checklist li::before) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-advisor-checklist li::before {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-pagination {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
  font-size: 13px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-pagination .portal-button {
  min-height: 40px;
  padding: 9px 12px;
  font-size: 12px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-case-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-case-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-case-category {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
  font-size: 11px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-case-card h3 {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-case-card > p {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-case-meta > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-case-meta dt, .portal-support-case-meta dd small) {
  color: var(--portal-muted);
  font-size: 11px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-case-meta dd {
  color: var(--portal-ink);
  font-size: 12px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-activity li {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-activity-dot {
  background: var(--portal-action);
  box-shadow: none;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-activity strong {
  color: var(--portal-ink);
  font-size: 13px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-activity small {
  color: var(--portal-muted);
  font-size: 12px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-recovery {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-recovery[data-support-state="waiting_user"], .portal-support-recovery[data-support-state="refund_pending"]) {
  border-color: var(--portal-warning);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-recovery[data-support-state="closed"] {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-recovery-copy .portal-card-title, .portal-support-recovery-copy strong) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-recovery-copy p, .portal-support-recovery-copy p + p) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-message {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-message--operator {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-message.is-internal {
  border-color: var(--portal-warning);
  border-style: dashed;
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-message-meta strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-message-meta span, .portal-support-message > small, .portal-support-message p) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-care-lane {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-care-lane-head {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-care-lane-head strong {
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-care-lane dl > div, .portal-support-care-detail-grid > div) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-care-lane dt, .portal-support-care-detail-grid dt) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-care-lane dd, .portal-support-care-detail-grid dd) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-care-reason {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-care-activity li {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-care-activity strong, .portal-support-care-activity p) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-care-activity small {
  color: var(--portal-muted);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) :is(h2, h3) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

.portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(button, input, select, textarea):disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-intro, .portal-support-admin-intro, .portal-support-case-hero, .portal-support-care-heading, .portal-support-layout, .portal-support-detail-layout, .portal-support-admin-forms, .portal-support-advisor-form, .portal-support-consultation-form .portal-fields, .portal-support-filter, .portal-support-case-grid, .portal-support-metrics) {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-support-intro dl, .portal-support-admin-intro dl, .portal-support-case-hero dl, .portal-support-care-heading dl, .portal-support-case-meta, .portal-support-care-lane dl, .portal-support-care-detail-grid) {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-recovery {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) .portal-support-recovery-actions {
    justify-content: flex-start;
  }

  .portal-page:is(.portal-support-desk, .portal-support-cases, .portal-support-case-detail, .portal-support-admin, .portal-support-admin-case-detail) :is(.portal-button, .portal-input, .portal-select, .portal-textarea, .portal-support-filter input, .portal-support-filter select) {
    min-height: 44px;
  }
}

/* Final light Admin ERP core surface */
.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-guard {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-guard .portal-state h2 {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-guard .portal-state p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-grid {
  gap: 12px;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-grid .portal-metric {
  min-height: 116px;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-grid .portal-metric span {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-grid .portal-metric strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-grid .portal-metric em {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-work-queues {
  gap: 16px;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-work-queues .portal-section-heading h2 {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-work-queues .portal-section-heading p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-work-queue {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-work-queue:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-work-queue strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-work-queue small {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-work-queue > b {
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-work-queue:hover > b {
  color: var(--portal-action-hover);
  transform: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-authority {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-authority > summary {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-authority > summary:hover {
  background: var(--portal-light-hover-surface);
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-authority[open] {
  border-color: var(--portal-border-strong);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-authority[open] > summary {
  border-bottom-color: var(--portal-border);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-directory {
  gap: 16px;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-directory > .portal-card-header {
  border-bottom-color: var(--portal-border);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-directory-group {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-directory-group > summary {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-directory-group > summary small {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-directory-group > summary:hover {
  background: var(--portal-light-hover-surface);
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-directory-group[open] {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-directory-group[open] > summary {
  border-bottom-color: var(--portal-border);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-directory-group .portal-module-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-directory-group .portal-module-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-intro :is(h2, h3) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-intro p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-card:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-card h3 {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-card p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-boundaries li {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-boundaries li::before {
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-intro :is(h2, strong) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-intro :is(p, small) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-grid {
  gap: 12px;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-card:not(.portal-stewardship-card--guarded):is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-card-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-card-copy small {
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-card-copy strong {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-card-copy > span {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-card-copy em {
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-card--guarded {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-card--guarded .portal-stewardship-card-icon,
.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-card--guarded .portal-stewardship-card-copy em {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-section .portal-section-heading h2,
.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-boundary :is(h2, strong) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-section .portal-section-heading p,
.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-boundary :is(p, small) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-boundary {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-boundary li {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-stewardship-boundary li > span:first-child {
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) :is(h2, h3) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) :is(.portal-state[data-state="guarded"], .portal-state[data-state="failed"]) p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

.portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) :is(button, input, select, textarea):disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) :is(.portal-admin-grid, .portal-admin-work-queue-grid, .portal-admin-domain-grid, .portal-work-grid, .portal-stewardship-grid, .portal-stewardship-boundary ul) {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) :is(.portal-admin-directory-head, .portal-admin-work-queue, .portal-admin-domain-card) {
    align-items: flex-start;
  }

  .portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) .portal-admin-domain-card .portal-module-arrow {
    display: none;
  }

  .portal-page:is(.portal-admin-home, .portal-admin-domain, .portal-admin-system-stewardship) :is(.portal-button, .portal-input, .portal-select, .portal-textarea) {
    min-height: 44px;
  }
}

/* Final light Workspace Menu surface */
.portal-page.portal-workspace-menu {
  color: var(--portal-ink);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-workspace-menu .portal-workspace-menu-intro h2 {
  color: var(--portal-ink);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-intro p {
  color: var(--portal-muted);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-intro-status {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-intro-status > span:first-child,
.portal-page.portal-workspace-menu .portal-workspace-menu-card .portal-module-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-intro-status strong {
  color: var(--portal-ink);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-intro-status small {
  color: var(--portal-muted);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-directory {
  gap: 20px;
}

.portal-page.portal-workspace-menu .portal-workspace-menu-group {
  gap: 12px;
}

.portal-page.portal-workspace-menu .portal-workspace-menu-group-head h2 {
  color: var(--portal-ink);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-group-head p {
  color: var(--portal-muted);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-group-head > span {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-grid {
  gap: 12px;
}

.portal-page.portal-workspace-menu .portal-workspace-menu-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page.portal-workspace-menu .portal-workspace-menu-card:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-workspace-menu .portal-workspace-menu-card:active {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  transform: none;
}

.portal-page.portal-workspace-menu .portal-workspace-menu-card-state small,
.portal-page.portal-workspace-menu .portal-workspace-menu-card-copy > span {
  color: var(--portal-muted);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-card-copy > small,
.portal-page.portal-workspace-menu .portal-workspace-menu-card-footer {
  color: var(--portal-action);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-card-copy > strong {
  color: var(--portal-ink);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-boundary {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-boundary-list > li {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-boundary-list strong {
  color: var(--portal-ink);
}

.portal-page.portal-workspace-menu .portal-workspace-menu-boundary-list small {
  color: var(--portal-muted);
}

.portal-page.portal-workspace-menu :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page.portal-workspace-menu :is(.portal-workspace-menu-grid, .portal-workspace-menu-boundary-list) {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-workspace-menu .portal-workspace-menu-group-head {
    align-items: flex-start;
  }

  .portal-page.portal-workspace-menu .portal-workspace-menu-intro-status {
    width: 100%;
    min-width: 0;
  }

  .portal-page.portal-workspace-menu :is(.portal-button, .portal-workspace-menu-card) {
    min-height: 44px;
  }
}

/* Final light Admin readiness guides surface */
.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-intro, .portal-postback-readiness-intro, .portal-job-recovery-intro) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-process, .portal-postback-readiness-process, .portal-job-recovery-process, .portal-tax-readiness-boundary, .portal-postback-readiness-boundary, .portal-job-recovery-boundary) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-intro h2, .portal-postback-readiness-intro h2, .portal-job-recovery-intro h2, .portal-tax-readiness-section .portal-section-heading h2, .portal-postback-readiness-section .portal-section-heading h2, .portal-job-recovery-section .portal-section-heading h2, .portal-tax-readiness-process .portal-card-title, .portal-postback-readiness-process .portal-card-title, .portal-job-recovery-process .portal-card-title, .portal-tax-readiness-boundary .portal-card-title, .portal-postback-readiness-boundary .portal-card-title, .portal-job-recovery-boundary .portal-card-title) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-intro p, .portal-postback-readiness-intro p, .portal-job-recovery-intro p, .portal-tax-readiness-section .portal-section-heading p, .portal-postback-readiness-section .portal-section-heading p, .portal-job-recovery-section .portal-section-heading p, .portal-tax-readiness-process .portal-card-subtitle, .portal-postback-readiness-process .portal-card-subtitle, .portal-job-recovery-process .portal-card-subtitle, .portal-tax-readiness-boundary .portal-card-subtitle, .portal-postback-readiness-boundary .portal-card-subtitle, .portal-job-recovery-boundary .portal-card-subtitle) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) .portal-section-kicker {
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-intro-status, .portal-postback-readiness-intro-status, .portal-job-recovery-intro-status) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-intro-status > span:first-child, .portal-postback-readiness-intro-status > span:first-child, .portal-job-recovery-intro-status > span:first-child, .portal-tax-readiness-card-icon, .portal-postback-readiness-card-icon, .portal-job-recovery-card-icon) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-intro-status strong, .portal-postback-readiness-intro-status strong, .portal-job-recovery-intro-status strong) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-intro-status small, .portal-postback-readiness-intro-status small, .portal-job-recovery-intro-status small) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-card, .portal-postback-readiness-card, .portal-job-recovery-card) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-card h3, .portal-postback-readiness-card h3, .portal-job-recovery-card h3, .portal-tax-readiness-process li strong, .portal-postback-readiness-process li strong, .portal-job-recovery-process li strong, .portal-tax-readiness-boundary li strong, .portal-postback-readiness-boundary li strong, .portal-job-recovery-boundary li strong, .portal-panel-row strong) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-card p, .portal-postback-readiness-card p, .portal-job-recovery-card p, .portal-tax-readiness-process li span, .portal-postback-readiness-process li span, .portal-job-recovery-process li span, .portal-tax-readiness-boundary li small, .portal-postback-readiness-boundary li small, .portal-job-recovery-boundary li small, .portal-panel-row > div > span) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-process li, .portal-postback-readiness-process li, .portal-job-recovery-process li, .portal-tax-readiness-boundary li, .portal-postback-readiness-boundary li, .portal-job-recovery-boundary li, .portal-panel-row) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-process li, .portal-postback-readiness-process li, .portal-job-recovery-process li)::before,
.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-boundary li, .portal-postback-readiness-boundary li, .portal-job-recovery-boundary li) > span:first-child,
.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) .portal-panel-row-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) .portal-badge[data-status="read_only"] {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-intro, .portal-postback-readiness-intro, .portal-job-recovery-intro, .portal-tax-readiness-section .portal-section-heading, .portal-postback-readiness-section .portal-section-heading, .portal-job-recovery-section .portal-section-heading) {
    align-items: flex-start;
    flex-direction: column;
  }

  .portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-intro-status, .portal-postback-readiness-intro-status, .portal-job-recovery-intro-status) {
    width: 100%;
    min-width: 0;
  }

  .portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) :is(.portal-tax-readiness-grid, .portal-postback-readiness-grid, .portal-job-recovery-grid, .portal-tax-readiness-process ol, .portal-postback-readiness-process ol, .portal-job-recovery-process ol, .portal-tax-readiness-boundary ul, .portal-postback-readiness-boundary ul, .portal-job-recovery-boundary ul) {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-admin-tax-readiness, .portal-admin-postback-readiness, .portal-admin-job-recovery-guide) .portal-button--quiet {
    min-height: 44px;
  }
}

/* Final light Interface Locale Navigator surface */
.portal-page.portal-interface-locale-navigator {
  color: var(--portal-ink);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page.portal-interface-locale-navigator :is(.portal-interface-locale-intro h2, .portal-interface-locale-form .portal-card-title, .portal-interface-locale-support .portal-card-title) {
  color: var(--portal-ink);
}

.portal-page.portal-interface-locale-navigator :is(.portal-interface-locale-intro p, .portal-interface-locale-form .portal-card-subtitle, .portal-interface-locale-support .portal-card-subtitle, .portal-interface-locale-form .portal-form-note) {
  color: var(--portal-muted);
}

.portal-page.portal-interface-locale-navigator .portal-section-kicker {
  color: var(--portal-action);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-current {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-interface-locale-navigator :is(.portal-interface-locale-current > span:first-child, .portal-interface-locale-choice-mark) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-current strong {
  color: var(--portal-ink);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-current small {
  color: var(--portal-muted);
}

.portal-page.portal-interface-locale-navigator .portal-settings-nav {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-interface-locale-navigator .portal-settings-nav a {
  border-color: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page.portal-interface-locale-navigator .portal-settings-nav a:is(:hover, :focus-visible) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page.portal-interface-locale-navigator .portal-settings-nav a[aria-current="page"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-accent-soft);
  color: var(--portal-action);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-choice-body {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-choice:hover .portal-interface-locale-choice-body {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-choice:focus-within .portal-interface-locale-choice-body,
.portal-page.portal-interface-locale-navigator .portal-interface-locale-input:focus-visible + .portal-interface-locale-choice-body {
  border-color: var(--portal-focus);
  box-shadow: 0 0 0 3px var(--portal-focus-soft);
  outline: 0;
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-input:checked + .portal-interface-locale-choice-body {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-accent-soft);
  box-shadow: inset 0 0 0 1px var(--portal-border-strong);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-input:checked + .portal-interface-locale-choice-body .portal-interface-locale-choice-mark {
  border-color: var(--portal-action);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-interface-locale-navigator :is(.portal-interface-locale-choice-state, .portal-interface-locale-choice em) {
  color: var(--portal-action);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-choice strong {
  color: var(--portal-ink);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-choice small {
  color: var(--portal-muted);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-choice:has(.portal-interface-locale-input:disabled) {
  cursor: not-allowed;
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-input:disabled + .portal-interface-locale-choice-body {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
  opacity: 0.64;
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-choice:has(.portal-interface-locale-input:disabled):hover .portal-interface-locale-choice-body {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-boundary article {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-boundary article > span {
  color: var(--portal-context);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-boundary strong {
  color: var(--portal-ink);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-boundary p {
  color: var(--portal-muted);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-support {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-support li {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-unsupported-code {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-context);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-support strong {
  color: var(--portal-ink);
}

.portal-page.portal-interface-locale-navigator .portal-interface-locale-support small {
  color: var(--portal-muted);
}

.portal-page.portal-interface-locale-navigator .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-interface-locale-navigator .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-interface-locale-navigator :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .portal-page.portal-interface-locale-navigator :is(.portal-interface-locale-grid, .portal-interface-locale-boundary) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .portal-page.portal-interface-locale-navigator .portal-interface-locale-intro {
    align-items: flex-start;
    flex-direction: column;
  }

  .portal-page.portal-interface-locale-navigator .portal-interface-locale-current {
    width: 100%;
    min-width: 0;
  }

  .portal-page.portal-interface-locale-navigator :is(.portal-interface-locale-grid, .portal-interface-locale-boundary, .portal-interface-locale-support ul) {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-interface-locale-navigator :is(.portal-settings-nav a, .portal-interface-locale-choice-body, .portal-button--quiet) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-interface-locale-navigator .portal-interface-locale-choice-body {
    transition: none;
  }

  .portal-page.portal-interface-locale-navigator .portal-interface-locale-choice:hover .portal-interface-locale-choice-body,
  .portal-page.portal-interface-locale-navigator .portal-button--quiet:is(:hover, :focus-visible) {
    transform: none;
  }
}

/* Final light Account Security Center surface */
.portal-page.portal-account-security {
  color: var(--portal-ink);
}

.portal-page.portal-account-security .portal-settings-nav {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-account-security .portal-settings-nav a {
  border-color: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page.portal-account-security .portal-settings-nav a:is(:hover, :focus-visible) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page.portal-account-security .portal-settings-nav a[aria-current="page"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-accent-soft);
  color: var(--portal-action);
}

.portal-page.portal-account-security .portal-security-posture {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-account-security .portal-security-assurance {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-account-security .portal-security-posture-head h2 {
  color: var(--portal-ink);
}

.portal-page.portal-account-security .portal-security-posture-head p {
  color: var(--portal-muted);
}

.portal-page.portal-account-security .portal-security-posture-facts > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-account-security .portal-security-posture-facts > div[data-state="ready"] {
  border-color: var(--portal-action);
}

.portal-page.portal-account-security .portal-security-posture-facts > div[data-state="guarded"] {
  border-color: var(--portal-warning);
}

.portal-page.portal-account-security .portal-security-posture-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-context);
}

.portal-page.portal-account-security :is(.portal-security-posture-facts small, .portal-security-posture-facts em, .portal-panel-row > div > span:not(.portal-badge), .portal-form-note, .portal-notice p, .portal-state p) {
  color: var(--portal-muted);
}

.portal-page.portal-account-security :is(.portal-security-posture-facts strong, .portal-panel-row strong, .portal-notice strong, .portal-state h2, .portal-security-assurance summary) {
  color: var(--portal-ink);
}

.portal-page.portal-account-security .portal-panel-row {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-account-security .portal-notice {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-account-security .portal-state {
  border-color: var(--portal-border) !important;
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page.portal-account-security .portal-panel-row-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-account-security .portal-password-toggle {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-account-security .portal-password-toggle:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  transform: none;
}

.portal-page.portal-account-security .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-account-security .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-account-security :is(.portal-button, .portal-password-toggle):disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.64;
  transform: none;
}

.portal-page.portal-account-security :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 1040px) {
  .portal-page.portal-account-security .portal-security-posture-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .portal-page.portal-account-security .portal-security-posture-head {
    align-items: stretch;
    flex-direction: column;
  }

  .portal-page.portal-account-security :is(.portal-security-posture-facts, .portal-work-grid) {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-account-security :is(.portal-settings-nav a, .portal-button, .portal-password-toggle) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-account-security :is(.portal-settings-nav a, .portal-password-toggle, .portal-button) {
    transition: none;
  }
}

/* Final light Account Activity surface */
.portal-page.portal-account-activity {
  color: var(--portal-ink);
}

.portal-page.portal-account-activity .portal-settings-nav {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-account-activity .portal-settings-nav a {
  border-color: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page.portal-account-activity .portal-settings-nav a:is(:hover, :focus-visible) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page.portal-account-activity .portal-settings-nav a[aria-current="page"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-accent-soft);
  color: var(--portal-action);
}

.portal-page.portal-account-activity .portal-campaign-boundary {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-account-activity .portal-state {
  border-color: var(--portal-border) !important;
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page.portal-account-activity .portal-state-icon {
  color: var(--portal-context);
}

.portal-page.portal-account-activity .portal-state h2 {
  color: var(--portal-ink);
}

.portal-page.portal-account-activity .portal-state p {
  color: var(--portal-muted);
}

.portal-page.portal-account-activity .portal-state-meta span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-account-activity .portal-data-table-wrap {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-account-activity .portal-data-table :is(th, td) {
  border-bottom-color: var(--portal-table-divider);
}

.portal-page.portal-account-activity .portal-data-table th {
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-account-activity .portal-data-table td {
  color: var(--portal-ink);
}

.portal-page.portal-account-activity .portal-data-table tbody tr:hover {
  background: var(--portal-light-hover-surface);
}

.portal-page.portal-account-activity .portal-notice {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-account-activity .portal-notice strong {
  color: var(--portal-ink);
}

.portal-page.portal-account-activity .portal-notice p {
  color: var(--portal-muted);
}

.portal-page.portal-account-activity .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-account-activity .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-account-activity .portal-button:disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.64;
  transform: none;
}

.portal-page.portal-account-activity :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page.portal-account-activity .portal-inline-actions {
    align-items: stretch;
    justify-content: flex-start;
  }

  .portal-page.portal-account-activity :is(.portal-settings-nav a, .portal-button) {
    min-height: 44px;
  }

  .portal-page.portal-account-activity .portal-data-table tbody tr:hover > td:first-child:not(.portal-empty-cell) {
    background: var(--portal-light-hover-surface);
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-account-activity :is(.portal-settings-nav a, .portal-button) {
    transition: none;
  }
}

/* Final light Data Controls surface */
.portal-page.portal-account-data-controls {
  color: var(--portal-ink);
}

.portal-page.portal-account-data-controls .portal-settings-nav {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-account-data-controls .portal-settings-nav a {
  border-color: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page.portal-account-data-controls .portal-settings-nav a:is(:hover, :focus-visible) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page.portal-account-data-controls .portal-settings-nav a[aria-current="page"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-accent-soft);
  color: var(--portal-action);
}

.portal-page.portal-account-data-controls .portal-support-intro {
  border-color: var(--portal-border) !important;
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page.portal-account-data-controls .portal-support-intro h2 {
  color: var(--portal-ink);
}

.portal-page.portal-account-data-controls .portal-support-intro p {
  color: var(--portal-muted);
}

.portal-page.portal-account-data-controls .portal-support-intro dl > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-account-data-controls .portal-support-intro dt {
  color: var(--portal-action);
}

.portal-page.portal-account-data-controls .portal-support-intro dd {
  color: var(--portal-muted);
}

.portal-page.portal-account-data-controls .portal-state {
  border-color: var(--portal-border) !important;
  background: var(--portal-surface-light) !important;
  box-shadow: none;
}

.portal-page.portal-account-data-controls .portal-state-icon {
  color: var(--portal-context);
}

.portal-page.portal-account-data-controls .portal-state h2 {
  color: var(--portal-ink);
}

.portal-page.portal-account-data-controls .portal-state p {
  color: var(--portal-muted);
}

.portal-page.portal-account-data-controls .portal-state-meta span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-account-data-controls .portal-panel-row {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-account-data-controls .portal-panel-row-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-account-data-controls .portal-panel-row strong {
  color: var(--portal-ink);
}

.portal-page.portal-account-data-controls .portal-panel-row > div > :is(span, small):not(.portal-badge) {
  color: var(--portal-muted);
}

.portal-page.portal-account-data-controls .portal-project-steps li {
  border-top-color: var(--portal-border);
}

.portal-page.portal-account-data-controls .portal-project-steps li::before {
  background: var(--portal-action);
  box-shadow: 0 0 0 4px var(--portal-light-accent-soft);
}

.portal-page.portal-account-data-controls .portal-project-steps strong {
  color: var(--portal-ink);
}

.portal-page.portal-account-data-controls .portal-project-steps span {
  color: var(--portal-muted);
}

.portal-page.portal-account-data-controls .portal-notice {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-account-data-controls .portal-notice strong {
  color: var(--portal-ink);
}

.portal-page.portal-account-data-controls .portal-notice p {
  color: var(--portal-muted);
}

.portal-page.portal-account-data-controls .portal-checkbox {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-ink) !important;
}

.portal-page.portal-account-data-controls .portal-checkbox input {
  accent-color: var(--portal-action);
}

.portal-page.portal-account-data-controls .portal-checkbox:has(input:focus-visible) {
  border-color: var(--portal-focus);
  box-shadow: 0 0 0 3px var(--portal-focus-soft);
}

.portal-page.portal-account-data-controls .portal-checkbox:has(input:disabled) {
  cursor: not-allowed;
  opacity: 0.64;
}

.portal-page.portal-account-data-controls .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-account-data-controls .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-account-data-controls .portal-button:disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.64;
  transform: none;
}

.portal-page.portal-account-data-controls :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .portal-page.portal-account-data-controls .portal-support-intro {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .portal-page.portal-account-data-controls :is(.portal-work-grid, .portal-support-intro dl) {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-account-data-controls :is(.portal-settings-nav a, .portal-button, .portal-checkbox) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-account-data-controls :is(.portal-settings-nav a, .portal-button, .portal-checkbox) {
    transition: none;
  }
}

/* Final light Account Hub surface */
.portal-page.portal-account-page {
  color: var(--portal-ink);
}

.portal-page.portal-account-page .portal-settings-nav {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-account-page .portal-settings-nav a {
  border-color: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page.portal-account-page .portal-settings-nav a:is(:hover, :focus-visible) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page.portal-account-page .portal-settings-nav a[aria-current="page"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-accent-soft);
  color: var(--portal-action);
}

.portal-page.portal-account-page .portal-account-command {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-account-page .portal-account-command-copy h2 {
  color: var(--portal-ink);
}

.portal-page.portal-account-page .portal-account-command-copy p {
  color: var(--portal-muted);
}

.portal-page.portal-account-page .portal-account-command-facts > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-account-page .portal-account-command-facts dt {
  color: var(--portal-muted);
}

.portal-page.portal-account-page .portal-account-command-facts dd {
  color: var(--portal-ink);
}

.portal-page.portal-account-page .portal-account-session {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-account-page .portal-summary-item {
  border-bottom-color: var(--portal-border);
}

.portal-page.portal-account-page .portal-summary-key {
  color: var(--portal-muted);
}

.portal-page.portal-account-page .portal-summary-value {
  color: var(--portal-ink);
}

.portal-page.portal-account-page .portal-oauth-method {
  padding: 12px;
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-account-page .portal-oauth-method strong {
  color: var(--portal-ink);
}

.portal-page.portal-account-page .portal-oauth-method :is(span, .portal-form-note) {
  color: var(--portal-muted);
}

.portal-page.portal-account-page .portal-bot-companion-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-account-page .portal-bot-companion-card h3 {
  color: var(--portal-ink);
}

.portal-page.portal-account-page .portal-bot-companion-card p {
  color: var(--portal-muted);
}

.portal-page.portal-account-page .portal-link-code {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-context);
}

.portal-page.portal-account-page .portal-account-assurance {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-account-page .portal-account-assurance summary {
  color: var(--portal-ink);
}

.portal-page.portal-account-page .portal-account-assurance summary::after {
  color: var(--portal-action);
}

.portal-page.portal-account-page .portal-account-assurance[open] {
  border-color: var(--portal-border-strong);
}

.portal-page.portal-account-page .portal-notice {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-account-page .portal-notice strong {
  color: var(--portal-ink);
}

.portal-page.portal-account-page .portal-notice p {
  color: var(--portal-muted);
}

.portal-page.portal-account-page .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-account-page .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-account-page [data-portal-action="auth-logout"] {
  border-color: var(--portal-danger);
  background: var(--portal-surface-light);
  color: var(--portal-danger);
}

.portal-page.portal-account-page [data-portal-action="auth-logout"]:is(:hover, :focus-visible) {
  border-color: var(--portal-danger);
  background: var(--portal-surface-soft);
  color: var(--portal-danger);
  transform: none;
}

.portal-page.portal-account-page .portal-button:disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.64;
  transform: none;
}

.portal-page.portal-account-page :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 1040px) {
  .portal-page.portal-account-page .portal-account-command {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .portal-page.portal-account-page .portal-account-command-facts {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .portal-page.portal-account-page :is(.portal-account-command, .portal-account-overview, .portal-bot-companion-grid) {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-account-page .portal-summary-item {
    align-items: start;
    display: grid;
    gap: 4px;
    grid-template-columns: 1fr;
  }

  .portal-page.portal-account-page :is(.portal-settings-nav a, .portal-button) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-account-page :is(.portal-settings-nav a, .portal-button) {
    transition: none;
  }

  .portal-page.portal-account-page .portal-account-assurance {
    transition: none;
  }
}

/* Final light Onboarding surface */
.portal-page.portal-onboarding-page {
  color: var(--portal-ink);
}

.portal-page.portal-onboarding-page > .portal-hero {
  margin-bottom: 4px;
}

.portal-page.portal-onboarding-page .portal-onboarding-layout {
  gap: 24px;
}

.portal-page.portal-onboarding-page .portal-onboarding-action > .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-onboarding-page .portal-onboarding-action > .portal-notice {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-onboarding-page .portal-onboarding-action > .portal-notice strong {
  color: var(--portal-ink);
}

.portal-page.portal-onboarding-page .portal-onboarding-action > .portal-notice p {
  color: var(--portal-muted);
}

.portal-page.portal-onboarding-page .portal-onboarding-action > .portal-notice .portal-notice-icon {
  color: var(--portal-warning);
}

.portal-page.portal-onboarding-page .portal-empty {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page.portal-onboarding-page .portal-empty-icon {
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-onboarding-page .portal-empty h3 {
  color: var(--portal-ink);
}

.portal-page.portal-onboarding-page .portal-empty p {
  color: var(--portal-muted);
}

.portal-page.portal-onboarding-page .portal-onboarding-choice {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-accent-soft);
}

.portal-page.portal-onboarding-page .portal-onboarding-choice-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-onboarding-page .portal-onboarding-choice strong,
.portal-page.portal-onboarding-page .portal-onboarding-route strong {
  color: var(--portal-ink);
}

.portal-page.portal-onboarding-page :is(.portal-onboarding-choice p, .portal-onboarding-route p) {
  color: var(--portal-muted);
}

.portal-page.portal-onboarding-page .portal-onboarding-steps {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-onboarding-page .portal-onboarding-steps li {
  border-top-color: var(--portal-border);
}

.portal-page.portal-onboarding-page .portal-onboarding-steps li > span {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-onboarding-page .portal-onboarding-steps strong {
  color: var(--portal-ink);
}

.portal-page.portal-onboarding-page .portal-onboarding-steps small {
  color: var(--portal-muted);
}

.portal-page.portal-onboarding-page .portal-onboarding-steps li[data-state="current"] {
  border-left-color: var(--portal-action);
  background: var(--portal-surface-soft);
}

.portal-page.portal-onboarding-page .portal-onboarding-steps li[data-state="current"] > span {
  border-color: var(--portal-action);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-onboarding-page .portal-onboarding-route {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-onboarding-page .portal-onboarding-route-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page.portal-onboarding-page .portal-onboarding-route-state {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page.portal-onboarding-page > .portal-onboarding-assurance {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-onboarding-page > .portal-onboarding-assurance > summary {
  color: var(--portal-ink);
}

.portal-page.portal-onboarding-page .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-onboarding-page .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-onboarding-page .portal-button:disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.64;
  transform: none;
}

.portal-page.portal-onboarding-page :is(button, a, summary):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 820px) {
  .portal-page.portal-onboarding-page .portal-onboarding-layout {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "action" "progress";
    gap: 16px;
  }
}

@media (max-width: 520px) {
  .portal-page.portal-onboarding-page .portal-onboarding-action > .portal-card {
    padding: 16px;
  }

  .portal-page.portal-onboarding-page :is(.portal-onboarding-choice .portal-button, .portal-button) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-onboarding-page :is(.portal-onboarding-choice, .portal-onboarding-route, .portal-button) {
    transition: none;
  }
}

/* Final light First-run Workspace surface */
.portal-page:is(.portal-workspace-setup, .portal-starter-kits) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) > .portal-hero {
  margin-bottom: 4px;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-steps {
  gap: 12px;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-steps li {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-steps li > span {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-steps li[data-state="done"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-accent-soft);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-steps li[data-state="done"] > span {
  border-color: var(--portal-action);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-steps :is(strong, small) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-steps small {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-context {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-context :is(h2, p) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-context p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-context-meta span {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-context-meta .portal-icon {
  color: var(--portal-context);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-form {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-form .portal-select {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus > legend {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus > p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus > .portal-workspace-setup-focus-status {
  color: var(--portal-action);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus-card:is(:hover, :focus-within) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus-card:focus-within {
  outline: 3px solid var(--portal-focus);
  outline-offset: 2px;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus-card:has(input:checked) {
  border-color: var(--portal-action);
  background: var(--portal-light-accent-soft);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus-card:has(input:disabled) {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  cursor: not-allowed;
  opacity: 0.64;
  transform: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus-card:has(input:disabled):hover {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  transform: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus-card :is(strong, small) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-focus-card small {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kits-layout {
  gap: 20px;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
  transition: border-color var(--portal-motion-fast), background var(--portal-motion-fast);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-detail-card,
.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-confirmation,
.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-scope {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-card:is(:hover, :focus-within) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-card:focus-within {
  outline: 3px solid var(--portal-focus);
  outline-offset: 2px;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-heading .portal-module-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-outcome,
.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-scope-section li,
.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-back-link {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-counts > div {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-counts dt {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-counts dd,
.portal-page:is(.portal-workspace-setup, .portal-starter-kits) :is(.portal-starter-kit-scope-section h3, .portal-starter-kit-creates h3) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-scope-section {
  border-top-color: var(--portal-border);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-scope-section li::before,
.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-back-link:hover {
  color: var(--portal-action);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-confirm-check {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-ink) !important;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-confirm-check:focus-within {
  border-color: var(--portal-border-strong);
  box-shadow: none;
  outline: 3px solid var(--portal-focus);
  outline-offset: 2px;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-empty {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-empty :is(h3, p) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-empty p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-empty-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-button:disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.64;
  transform: none;
}

.portal-page:is(.portal-workspace-setup, .portal-starter-kits) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kits-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-scope {
    position: static;
  }

  .portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .portal-page:is(.portal-workspace-setup, .portal-starter-kits) :is(.portal-workspace-setup-context, .portal-workspace-setup-form, .portal-starter-kit-card, .portal-starter-kit-detail-card, .portal-starter-kit-confirmation, .portal-starter-kit-scope) {
    padding: 16px;
  }

  .portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-workspace-setup-context {
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-page:is(.portal-workspace-setup, .portal-starter-kits) :is(.portal-workspace-setup-steps, .portal-workspace-setup-form-grid, .portal-workspace-setup-focus-grid, .portal-starter-kit-grid) {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-workspace-setup, .portal-starter-kits) .portal-starter-kit-counts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-page:is(.portal-workspace-setup, .portal-starter-kits) :is(.portal-workspace-setup-form .portal-select, .portal-workspace-setup-form .portal-button, .portal-starter-kit-actions .portal-button, .portal-starter-kit-confirmation .portal-button, .portal-button--quiet) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page:is(.portal-workspace-setup, .portal-starter-kits) :is(.portal-workspace-setup-focus-card, .portal-starter-kit-card, .portal-button, .portal-starter-kit-confirm-check) {
    transition: none;
    transform: none;
  }

  .portal-page:is(.portal-workspace-setup, .portal-starter-kits) :is(.portal-workspace-setup-focus-card:hover, .portal-starter-kit-card:hover) {
    transform: none;
  }
}

/* Final light Wallet and Billing surface */
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) > .portal-hero {
  margin-bottom: 4px;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-wallet-command, .portal-billing-journey, .portal-billing-entrypoints, .portal-billing-catalog-intro, .portal-wallet-assurance, .portal-wallet-secondary, [data-manual-topup-guide]) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-wallet-command, .portal-billing-entrypoints, [data-manual-topup-guide]) .portal-card-title,
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-wallet-command, .portal-billing-journey, .portal-billing-entrypoints, .portal-billing-catalog-intro, .portal-wallet-assurance, .portal-wallet-secondary, [data-manual-topup-guide]) :is(h2, h3, strong) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-wallet-command, .portal-billing-journey, .portal-billing-entrypoints, .portal-billing-catalog-intro, .portal-wallet-assurance, .portal-wallet-secondary, [data-manual-topup-guide]) :is(p, small, .portal-card-subtitle, .portal-form-note) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-wallet-command {
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-wallet-facts {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-wallet-facts > div {
  border-bottom-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-wallet-facts :is(dt, dd) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-wallet-facts dt {
  color: var(--portal-muted);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-wallet-read-status {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-journey {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-journey :is(h2, p) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-journey p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-journey-lanes li {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-journey-lanes li > span {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-light);
  color: var(--portal-action);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-journey-lanes :is(strong, p) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-journey-lanes p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-entrypoints {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-entrypoints .portal-payment-entry {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
  transition: border-color var(--portal-motion-fast), background var(--portal-motion-fast);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-entrypoints .portal-payment-entry--manual {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-entrypoints .portal-payment-entry:is(:hover, :focus-within) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-entrypoints .portal-payment-entry .portal-module-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-entrypoints .portal-payment-entry :is(h3, p, .portal-payment-entry-note) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-entrypoints .portal-payment-entry :is(p, .portal-payment-entry-note) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-entrypoints .portal-link-code {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-catalog-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-catalog-intro :is(h2, p) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-catalog-intro p {
  color: var(--portal-muted);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-catalog-page > .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-catalog-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
  transition: border-color var(--portal-motion-fast), background var(--portal-motion-fast);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-catalog-card:is(:hover, :focus-within) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-catalog-card .portal-module-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-catalog-card :is(h3, p, .portal-module-card-footer) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-catalog-card :is(p, .portal-module-card-footer) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-catalog-family {
  color: var(--portal-action);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-nav {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-nav a {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  box-shadow: none;
  transition: color var(--portal-motion-fast), border-color var(--portal-motion-fast), background var(--portal-motion-fast);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-nav a:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-nav a[aria-current="page"] {
  border-color: var(--portal-action);
  background: var(--portal-light-accent-soft);
  color: var(--portal-action);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-empty, .portal-state, .portal-summary-list, .portal-wallet-assurance, .portal-wallet-secondary, [data-manual-topup-guide]) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-empty, .portal-state, .portal-summary-list, .portal-wallet-assurance, .portal-wallet-secondary, [data-manual-topup-guide]) :is(h2, h3, p, small, strong) {
  color: var(--portal-ink);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-empty, .portal-state, .portal-summary-list, .portal-wallet-assurance, .portal-wallet-secondary, [data-manual-topup-guide]) :is(p, small, .portal-form-note) {
  color: var(--portal-muted);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="ready"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="completed"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="approved"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="refunded"] {
  color: var(--portal-success);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="read_only"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="awaiting_confirm"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="queued"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="processing"] {
  color: var(--portal-info);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="guarded"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="disabled"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="waiting_user"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="waiting_provider"] {
  color: var(--portal-warning);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="failed"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="failed_no_charge"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="error"],
.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-badge[data-status="cancelled"] {
  color: var(--portal-danger);
}

.portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-billing-journey-lanes, .portal-billing-entrypoints .portal-payment-entry-grid, .portal-module-grid) {
    grid-template-columns: 1fr;
  }

  .portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-billing-entrypoints .portal-button, .portal-button--primary, .portal-button--quiet) {
    min-height: 44px;
  }

  .portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-billing-journey, .portal-billing-entrypoints, .portal-billing-catalog-intro, .portal-billing-catalog-page > .portal-card, .portal-wallet-command, .portal-wallet-assurance, .portal-wallet-secondary, [data-manual-topup-guide]) {
    padding: 16px;
  }

  .portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    overflow-x: visible;
    scroll-snap-type: none;
  }

  .portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) .portal-billing-nav a {
    min-width: 0;
    min-height: 44px;
    justify-content: center;
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page:is(.portal-wallet-page, .portal-billing-catalog-page) :is(.portal-billing-journey, .portal-billing-entrypoints .portal-payment-entry, .portal-billing-catalog-card, .portal-billing-nav a, .portal-button) {
    transition: none;
    transform: none;
  }
}

/* Final light Delivery Center surface */
.portal-page.portal-delivery-page {
  color: var(--portal-ink);
}

.portal-page.portal-delivery-page > .portal-hero {
  margin-bottom: 4px;
}

.portal-page.portal-delivery-page .portal-delivery-summary-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
  transition: border-color var(--portal-motion-fast), background var(--portal-motion-fast);
}

.portal-page.portal-delivery-page .portal-delivery-summary-card:is(:hover, :focus-within) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-delivery-page .portal-delivery-summary-card > span,
.portal-page.portal-delivery-page .portal-delivery-summary-card > small {
  color: var(--portal-muted);
}

.portal-page.portal-delivery-page .portal-delivery-summary-card > strong {
  color: var(--portal-ink);
}

.portal-page.portal-delivery-page .portal-delivery-center {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-delivery-page .portal-delivery-center :is(.portal-card-title, h2, h3, strong) {
  color: var(--portal-ink);
}

.portal-page.portal-delivery-page .portal-delivery-center :is(.portal-card-subtitle, .portal-form-note, p, small) {
  color: var(--portal-muted);
}

.portal-page.portal-delivery-page .portal-delivery-read-status {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-delivery-page .portal-filter-bar {
  border-bottom-color: var(--portal-border);
}

.portal-page.portal-delivery-page .portal-filter-button {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  box-shadow: none;
  transition: border-color var(--portal-motion-fast), background var(--portal-motion-fast), color var(--portal-motion-fast);
}

.portal-page.portal-delivery-page .portal-filter-button:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-ink);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-delivery-page .portal-filter-button.is-active {
  border-color: var(--portal-context);
  background: var(--portal-light-accent-soft);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page.portal-delivery-page .portal-filter-button span {
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page.portal-delivery-page .portal-delivery-state {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
}

.portal-page.portal-delivery-page .portal-delivery-state[data-delivery="reported"] {
  border-color: var(--portal-info);
  color: var(--portal-info);
}

.portal-page.portal-delivery-page .portal-delivery-state[data-delivery="pending"] {
  border-color: var(--portal-warning);
  color: var(--portal-warning);
}

.portal-page.portal-delivery-page .portal-delivery-state[data-delivery="validated"] {
  border-color: var(--portal-success);
  background: var(--portal-surface-soft);
  color: var(--portal-success);
}

.portal-page.portal-delivery-page .portal-delivery-state[data-delivery="unavailable"] {
  border-color: var(--portal-danger);
  color: var(--portal-danger);
}

.portal-page.portal-delivery-page .portal-delivery-state[data-delivery="vault"] {
  border-color: var(--portal-context);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page.portal-delivery-page .portal-delivery-lifecycle-list,
.portal-page.portal-delivery-page .portal-delivery-next-action,
.portal-page.portal-delivery-page .portal-delivery-mobile-card,
.portal-page.portal-delivery-page :is(.portal-empty, .portal-state, .portal-summary-list) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-delivery-page .portal-delivery-lifecycle-list li {
  border-bottom-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-delivery-page .portal-delivery-lifecycle-list li > span:first-child {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page.portal-delivery-page .portal-delivery-lifecycle-list strong,
.portal-page.portal-delivery-page .portal-delivery-next-action strong,
.portal-page.portal-delivery-page .portal-delivery-mobile-card-head strong,
.portal-page.portal-delivery-page .portal-delivery-mobile-meta dd {
  color: var(--portal-ink);
}

.portal-page.portal-delivery-page :is(.portal-delivery-lifecycle-list p, .portal-delivery-next-action p, .portal-delivery-mobile-source, .portal-delivery-mobile-meta dt) {
  color: var(--portal-muted);
}

.portal-page.portal-delivery-page .portal-delivery-mobile-card {
  transition: border-color var(--portal-motion-fast), background var(--portal-motion-fast);
}

.portal-page.portal-delivery-page .portal-delivery-mobile-card:is(:hover, :focus-within) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-delivery-page .portal-delivery-desktop-records :is(.portal-data-table, .portal-data-table th, .portal-data-table td) {
  border-color: var(--portal-border);
}

.portal-page.portal-delivery-page .portal-delivery-desktop-records .portal-data-table th {
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-delivery-page .portal-delivery-desktop-records .portal-data-table td {
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page.portal-delivery-page .portal-delivery-desktop-records .portal-data-table tr:hover td {
  background: var(--portal-light-hover-surface);
}

.portal-page.portal-delivery-page :is(.portal-empty, .portal-state) :is(h2, h3, strong) {
  color: var(--portal-ink);
}

.portal-page.portal-delivery-page :is(.portal-empty, .portal-state) :is(p, small, .portal-form-note) {
  color: var(--portal-muted);
}

.portal-page.portal-delivery-page .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-delivery-page .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  box-shadow: none;
  transform: none;
}

.portal-page.portal-delivery-page :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

.portal-page:is(.portal-delivery-page, .portal-asset-vault) .portal-delivery-nav {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page:is(.portal-delivery-page, .portal-asset-vault) .portal-delivery-nav a {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted);
  box-shadow: none;
  transition: color var(--portal-motion-fast), border-color var(--portal-motion-fast), background var(--portal-motion-fast);
}

.portal-page:is(.portal-delivery-page, .portal-asset-vault) .portal-delivery-nav a:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-ink);
  box-shadow: none;
  transform: none;
}

.portal-page:is(.portal-delivery-page, .portal-asset-vault) .portal-delivery-nav a[aria-current="page"] {
  border-color: var(--portal-context);
  background: var(--portal-light-accent-soft);
  color: var(--portal-ink);
}

@media (max-width: 980px) {
  .portal-page.portal-delivery-page .portal-work-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .portal-page.portal-delivery-page :is(.portal-delivery-center, .portal-delivery-summary-card, .portal-delivery-lifecycle-list, .portal-delivery-next-action, .portal-delivery-mobile-card) {
    padding: 16px;
  }

  .portal-page.portal-delivery-page :is(.portal-delivery-summary-grid, .portal-delivery-mobile-records) {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-delivery-page :is(.portal-filter-button, .portal-button, .portal-delivery-mobile-card .portal-button) {
    min-height: 44px;
  }

  .portal-page:is(.portal-delivery-page, .portal-asset-vault) .portal-delivery-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    overflow-x: visible;
    scroll-snap-type: none;
  }

  .portal-page:is(.portal-delivery-page, .portal-asset-vault) .portal-delivery-nav a {
    min-width: 0;
    min-height: 44px;
    justify-content: center;
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-delivery-page :is(.portal-delivery-summary-card, .portal-delivery-center, .portal-delivery-mobile-card, .portal-filter-button, .portal-button) {
    transition: none;
    transform: none;
  }

  .portal-page:is(.portal-delivery-page, .portal-asset-vault) .portal-delivery-nav a {
    transition: none;
    transform: none;
  }
}

/* Final light Finance Operations Planning surface */
.portal-page.portal-finance-planning {
  color: var(--portal-ink);
  background: var(--portal-surface-light);
}

.portal-page.portal-finance-planning .portal-operations-admin-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-finance-planning .portal-operations-admin-intro :is(h2, dt, dd, strong) {
  color: var(--portal-ink);
}

.portal-page.portal-finance-planning .portal-operations-admin-intro p {
  color: var(--portal-muted);
}

.portal-page.portal-finance-planning .portal-operations-metrics .portal-metric {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-finance-planning .portal-operations-metrics .portal-metric > span,
.portal-page.portal-finance-planning .portal-operations-metrics .portal-metric > em {
  color: var(--portal-muted);
}

.portal-page.portal-finance-planning .portal-operations-metrics .portal-metric > strong {
  color: var(--portal-ink);
}

.portal-page.portal-finance-planning .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-finance-planning .portal-card :is(.portal-card-title, h2, h3) {
  color: var(--portal-ink);
}

.portal-page.portal-finance-planning .portal-card :is(.portal-card-subtitle, p) {
  color: var(--portal-muted);
}

.portal-page.portal-finance-planning .portal-data-table :is(th, td) {
  border-color: var(--portal-border);
}

.portal-page.portal-finance-planning .portal-data-table th {
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-finance-planning .portal-data-table td {
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page.portal-finance-planning .portal-data-table tr:hover td {
  background: var(--portal-light-hover-surface);
}

.portal-page.portal-finance-planning :is(.portal-input, .portal-select, .portal-textarea, .portal-form-note, [data-finance-planning-status]) {
  border-color: var(--portal-border);
  color: var(--portal-muted);
}

.portal-page.portal-finance-planning :is(.portal-input, .portal-select, .portal-textarea) {
  background: var(--portal-surface-light);
}

.portal-page.portal-finance-planning .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-finance-planning .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  transform: none;
  box-shadow: none;
}

.portal-page.portal-finance-planning .portal-button:disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

.portal-page.portal-finance-planning .portal-badge[data-status="ready"],
.portal-page.portal-finance-planning .portal-badge[data-status="active"],
.portal-page.portal-finance-planning .portal-badge[data-status="approved"] {
  border-color: var(--portal-success);
  color: var(--portal-success);
}

.portal-page.portal-finance-planning .portal-badge[data-status="processing"],
.portal-page.portal-finance-planning .portal-badge[data-status="review"] {
  border-color: var(--portal-info);
  color: var(--portal-info);
}

.portal-page.portal-finance-planning .portal-badge[data-status="guarded"] {
  border-color: var(--portal-warning);
  color: var(--portal-warning);
}

.portal-page.portal-finance-planning .portal-badge[data-status="failed"],
.portal-page.portal-finance-planning .portal-badge[data-status="error"] {
  border-color: var(--portal-danger);
  color: var(--portal-danger);
}

.portal-page.portal-finance-planning :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .portal-page.portal-finance-planning .portal-work-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .portal-page.portal-finance-planning .portal-operations-metrics {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-finance-planning :is(.portal-button--primary, .portal-button--quiet) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-finance-planning :is(.portal-card, .portal-metric, .portal-button, .portal-input, .portal-select, .portal-textarea) {
    transition: none;
    transform: none;
  }
}

/* Final light ERP Operations Desk surface */
.portal-page.portal-operations-desk {
  color: var(--portal-ink);
  background: var(--portal-surface-light);
}

.portal-page.portal-operations-desk .portal-operations-admin-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-operations-desk .portal-operations-admin-intro :is(h2, dt, dd, strong) {
  color: var(--portal-ink);
}

.portal-page.portal-operations-desk .portal-operations-admin-intro p {
  color: var(--portal-muted);
}

.portal-page.portal-operations-desk .portal-operations-metrics .portal-metric {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-operations-desk .portal-operations-metrics .portal-metric :is(span, em) {
  color: var(--portal-muted);
}

.portal-page.portal-operations-desk .portal-operations-metrics .portal-metric strong {
  color: var(--portal-ink);
}

.portal-page.portal-operations-desk .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-operations-desk .portal-card :is(.portal-card-title, h2, h3) {
  color: var(--portal-ink);
}

.portal-page.portal-operations-desk .portal-card :is(.portal-card-subtitle, p) {
  color: var(--portal-muted);
}

.portal-page.portal-operations-desk .portal-support-filter {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-operations-desk .portal-support-filter label {
  color: var(--portal-ink);
}

.portal-page.portal-operations-desk .portal-support-filter :is(.portal-select, select) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page.portal-operations-desk .portal-data-table-wrap {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-operations-desk .portal-data-table :is(th, td) {
  border-color: var(--portal-border);
}

.portal-page.portal-operations-desk .portal-data-table th {
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-operations-desk .portal-data-table td {
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  vertical-align: middle;
}

.portal-page.portal-operations-desk .portal-data-table tr:hover td {
  background: var(--portal-light-hover-surface);
}

.portal-page.portal-operations-desk .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-operations-desk .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  transform: none;
  box-shadow: none;
}

.portal-page.portal-operations-desk .portal-button:disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

.portal-page.portal-operations-desk .portal-badge[data-status="read_only"] {
  border-color: var(--portal-info);
  color: var(--portal-info);
}

.portal-page.portal-operations-desk .portal-badge[data-status="guarded"] {
  border-color: var(--portal-warning);
  color: var(--portal-warning);
}

.portal-page.portal-operations-desk .portal-badge[data-status="completed"] {
  border-color: var(--portal-success);
  color: var(--portal-success);
}

.portal-page.portal-operations-desk .portal-badge[data-status="failed"] {
  border-color: var(--portal-danger);
  color: var(--portal-danger);
}

.portal-page.portal-operations-desk :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .portal-page.portal-operations-desk .portal-support-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .portal-page.portal-operations-desk .portal-operations-metrics,
  .portal-page.portal-operations-desk .portal-support-filter {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-operations-desk :is(.portal-button--primary, .portal-button--quiet) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-operations-desk :is(.portal-card, .portal-metric, .portal-support-filter, .portal-select, .portal-button, .portal-data-table tbody tr) {
    transition: none;
    transform: none;
  }
}

/* Final light Admin Automation Monitor surface */
.portal-page.portal-admin-automation-monitor {
  color: var(--portal-ink);
  background: var(--portal-surface-light);
}

.portal-page.portal-admin-automation-monitor .portal-operations-admin-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-admin-automation-monitor .portal-operations-admin-intro :is(h2, dt, dd, strong) {
  color: var(--portal-ink);
}

.portal-page.portal-admin-automation-monitor .portal-operations-admin-intro p {
  color: var(--portal-muted);
}

.portal-page.portal-admin-automation-monitor .portal-operations-metrics .portal-metric {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-admin-automation-monitor .portal-operations-metrics .portal-metric :is(span, em) {
  color: var(--portal-muted);
}

.portal-page.portal-admin-automation-monitor .portal-operations-metrics .portal-metric strong {
  color: var(--portal-ink);
}

.portal-page.portal-admin-automation-monitor .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-admin-automation-monitor .portal-card :is(.portal-card-title, h2, h3) {
  color: var(--portal-ink);
}

.portal-page.portal-admin-automation-monitor .portal-card :is(.portal-card-subtitle, p) {
  color: var(--portal-muted);
}

.portal-page.portal-admin-automation-monitor .portal-operations-boundary {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-admin-automation-monitor .portal-operations-boundary-list li {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
}

.portal-page.portal-admin-automation-monitor .portal-operations-run {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-admin-automation-monitor .portal-operations-run-copy strong,
.portal-page.portal-admin-automation-monitor .portal-operations-run-meta strong {
  color: var(--portal-ink);
}

.portal-page.portal-admin-automation-monitor .portal-operations-run-copy small {
  color: var(--portal-muted);
}

.portal-page.portal-admin-automation-monitor .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-admin-automation-monitor .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  transform: none;
  box-shadow: none;
}

.portal-page.portal-admin-automation-monitor .portal-button:disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

.portal-page.portal-admin-automation-monitor .portal-badge[data-status="read_only"],
.portal-page.portal-admin-automation-monitor .portal-badge[data-status="processing"] {
  border-color: var(--portal-info);
  color: var(--portal-info);
}

.portal-page.portal-admin-automation-monitor .portal-badge[data-status="guarded"] {
  border-color: var(--portal-warning);
  color: var(--portal-warning);
}

.portal-page.portal-admin-automation-monitor .portal-badge[data-status="failed"] {
  border-color: var(--portal-danger);
  color: var(--portal-danger);
}

.portal-page.portal-admin-automation-monitor :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .portal-page.portal-admin-automation-monitor .portal-operations-admin-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .portal-page.portal-admin-automation-monitor .portal-operations-metrics {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-admin-automation-monitor :is(.portal-button--primary, .portal-button--quiet) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-admin-automation-monitor :is(.portal-card, .portal-metric, .portal-operations-run, .portal-button) {
    transition: none;
    transform: none;
  }
}

/* Final light Reliability Follow-up surface */
.portal-page.portal-reliability-admin {
  color: var(--portal-ink);
  background: var(--portal-surface-light);
}

.portal-page.portal-reliability-admin .portal-operations-admin-intro {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-reliability-admin .portal-operations-admin-intro :is(h2, dt, dd, strong) {
  color: var(--portal-ink);
}

.portal-page.portal-reliability-admin .portal-operations-admin-intro p {
  color: var(--portal-muted);
}

.portal-page.portal-reliability-admin .portal-operations-metrics .portal-metric {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-reliability-admin .portal-operations-metrics .portal-metric :is(span, em) {
  color: var(--portal-muted);
}

.portal-page.portal-reliability-admin .portal-operations-metrics .portal-metric strong {
  color: var(--portal-ink);
}

.portal-page.portal-reliability-admin .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-reliability-admin .portal-card :is(.portal-card-title, h2, h3) {
  color: var(--portal-ink);
}

.portal-page.portal-reliability-admin .portal-card :is(.portal-card-subtitle, p) {
  color: var(--portal-muted);
}

.portal-page.portal-reliability-admin .portal-support-filter {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-reliability-admin .portal-support-filter label {
  color: var(--portal-ink);
}

.portal-page.portal-reliability-admin .portal-support-filter :is(.portal-select, select) {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page.portal-reliability-admin .portal-reliability-row {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-reliability-admin .portal-reliability-copy strong,
.portal-page.portal-reliability-admin .portal-reliability-meta strong {
  color: var(--portal-ink);
}

.portal-page.portal-reliability-admin :is(.portal-reliability-copy small, .portal-reliability-meta .portal-form-note) {
  color: var(--portal-muted);
}

.portal-page.portal-reliability-admin .portal-operations-code {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-page.portal-reliability-admin .portal-operations-boundary {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-reliability-admin .portal-operations-boundary-list li {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
}

.portal-page.portal-reliability-admin .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-reliability-admin .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  transform: none;
  box-shadow: none;
}

.portal-page.portal-reliability-admin .portal-reliability-action .portal-button:disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

.portal-page.portal-reliability-admin .portal-badge[data-status="awaiting_confirm"],
.portal-page.portal-reliability-admin .portal-badge[data-status="processing"] {
  border-color: var(--portal-info);
  color: var(--portal-info);
}

.portal-page.portal-reliability-admin .portal-badge[data-status="completed"] {
  border-color: var(--portal-success);
  color: var(--portal-success);
}

.portal-page.portal-reliability-admin .portal-badge[data-status="guarded"] {
  border-color: var(--portal-warning);
  color: var(--portal-warning);
}

.portal-page.portal-reliability-admin .portal-badge[data-status="failed"] {
  border-color: var(--portal-danger);
  color: var(--portal-danger);
}

.portal-page.portal-reliability-admin :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .portal-page.portal-reliability-admin .portal-operations-admin-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .portal-page.portal-reliability-admin .portal-operations-metrics {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-reliability-admin .portal-support-filter {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-reliability-admin :is(.portal-button--primary, .portal-button--quiet) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-reliability-admin :is(.portal-card, .portal-metric, .portal-reliability-row, .portal-support-filter, .portal-select, .portal-button) {
    transition: none;
    transform: none;
  }
}

/* Final light Security and Access Posture surface */
.portal-page.portal-admin-security-access-posture {
  color: var(--portal-ink);
  background: var(--portal-surface-light);
}

.portal-page.portal-admin-security-access-posture .portal-operations-admin-intro {
  background: var(--portal-surface-soft) !important;
  border-color: var(--portal-border);
  box-shadow: none;
}

.portal-page.portal-admin-security-access-posture .portal-operations-metrics .portal-metric,
.portal-page.portal-admin-security-access-posture .portal-card {
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-admin-security-access-posture .portal-operations-boundary {
  background: var(--portal-surface-soft);
  border-color: var(--portal-border);
  box-shadow: none;
}

.portal-page.portal-admin-security-access-posture .portal-operations-run {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page.portal-admin-security-access-posture .portal-operations-boundary-list li {
  border-color: var(--portal-border);
  color: var(--portal-muted);
}

.portal-page.portal-admin-security-access-posture .portal-button--quiet:is(:hover, :focus-visible) {
  transform: none;
  box-shadow: none;
}

.portal-page.portal-admin-security-access-posture .portal-button:disabled {
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-admin-security-access-posture :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
}

.portal-page.portal-admin-security-access-posture .portal-badge[data-status="read_only"] {
  color: var(--portal-info);
}

.portal-page.portal-admin-security-access-posture .portal-badge[data-status="guarded"] {
  color: var(--portal-warning);
}

.portal-page.portal-admin-security-access-posture .portal-badge[data-status="failed"] {
  color: var(--portal-danger);
}

@media (max-width: 980px) {
  .portal-page.portal-admin-security-access-posture .portal-operations-admin-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .portal-page.portal-admin-security-access-posture .portal-operations-metrics {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-admin-security-access-posture :is(.portal-button--primary, .portal-button--quiet) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-admin-security-access-posture :is(.portal-card, .portal-metric, .portal-operations-run, .portal-button) {
    transition: none;
    transform: none;
  }
}

/* Final light Admin Audit Explorer surface */
.portal-page.portal-admin-audit {
  color: var(--portal-ink);
  background: var(--portal-surface-light);
}

.portal-page.portal-admin-audit .portal-admin-guard {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-admin-guard .portal-state {
  border-color: var(--portal-border) !important;
  background: var(--portal-surface-soft) !important;
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-admin-guard :is(h2, strong) {
  color: var(--portal-ink);
}

.portal-page.portal-admin-audit .portal-admin-guard p {
  color: var(--portal-muted);
}

.portal-page.portal-admin-audit .portal-work-grid > .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-card :is(.portal-card-title, h2, h3) {
  color: var(--portal-ink);
}

.portal-page.portal-admin-audit .portal-card :is(.portal-card-subtitle, p) {
  color: var(--portal-muted);
}

.portal-page.portal-admin-audit .portal-admin-audit-explorer {
  display: grid;
  gap: 16px;
}

.portal-page.portal-admin-audit .portal-admin-audit-explorer > .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-admin-audit-explorer .portal-admin-grid .portal-metric {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-admin-audit-explorer .portal-admin-grid .portal-metric :is(span, em) {
  color: var(--portal-muted);
}

.portal-page.portal-admin-audit .portal-admin-audit-explorer .portal-admin-grid .portal-metric strong {
  color: var(--portal-ink);
}

.portal-page.portal-admin-audit .portal-project-filter {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-project-filter :is(.portal-field > span, .portal-form-note) {
  color: var(--portal-muted);
}

.portal-page.portal-admin-audit .portal-project-filter .portal-select {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-data-table :is(th, td) {
  border-color: var(--portal-border);
}

.portal-page.portal-admin-audit .portal-data-table th {
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-admin-audit .portal-data-table td {
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page.portal-admin-audit .portal-data-table tbody tr:hover td {
  background: var(--portal-light-hover-surface);
}

.portal-page.portal-admin-audit .portal-table-note {
  color: var(--portal-muted);
}

.portal-page.portal-admin-audit .portal-support-pagination {
  border: 1px solid var(--portal-border);
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-admin-audit-boundaries {
  border: 1px solid var(--portal-border);
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-admin-audit-boundaries li {
  border-top-color: var(--portal-border);
  color: var(--portal-muted);
}

.portal-page.portal-admin-audit .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  transform: none;
  box-shadow: none;
}

.portal-page.portal-admin-audit :is(.portal-button, .portal-select):disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

.portal-page.portal-admin-audit .portal-badge[data-status="read_only"] {
  border-color: var(--portal-info);
  color: var(--portal-info);
}

.portal-page.portal-admin-audit .portal-badge[data-status="guarded"] {
  border-color: var(--portal-warning);
  color: var(--portal-warning);
}

.portal-page.portal-admin-audit .portal-badge[data-status="failed"] {
  border-color: var(--portal-danger);
  color: var(--portal-danger);
}

.portal-page.portal-admin-audit :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .portal-page.portal-admin-audit .portal-work-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-page.portal-admin-audit .portal-admin-audit-explorer .portal-admin-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .portal-page.portal-admin-audit :is(.portal-admin-grid, .portal-project-filter .portal-fields) {
    grid-template-columns: 1fr;
  }

  .portal-page.portal-admin-audit :is(.portal-button--primary, .portal-button--quiet, .portal-select) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-admin-audit :is(.portal-card, .portal-metric, .portal-project-filter, .portal-data-table tbody tr, .portal-button) {
    transition: none;
    transform: none;
  }
}

/* Final light Admin Runtime surface */
.portal-page.portal-admin-runtime {
  color: var(--portal-ink);
  background: var(--portal-surface-light);
}

.portal-page.portal-admin-runtime .portal-admin-guard {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: none;
}

.portal-page.portal-admin-runtime .portal-admin-guard .portal-state {
  border-color: var(--portal-border) !important;
  background: var(--portal-surface-soft) !important;
  box-shadow: none;
}

.portal-page.portal-admin-runtime .portal-admin-guard :is(h2, strong) {
  color: var(--portal-ink);
}

.portal-page.portal-admin-runtime .portal-admin-guard p {
  color: var(--portal-muted);
}

.portal-page.portal-admin-runtime .portal-work-grid > .portal-card {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-admin-runtime .portal-card :is(.portal-card-title, h2, h3) {
  color: var(--portal-ink);
}

.portal-page.portal-admin-runtime .portal-card :is(.portal-card-subtitle, p) {
  color: var(--portal-muted);
}

.portal-page.portal-admin-runtime .portal-data-table :is(th, td) {
  border-color: var(--portal-border);
}

.portal-page.portal-admin-runtime .portal-data-table th {
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-page.portal-admin-runtime .portal-data-table td {
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page.portal-admin-runtime .portal-data-table tbody tr:hover td {
  background: var(--portal-light-hover-surface);
}

.portal-page.portal-admin-runtime .portal-data-table :is(.portal-form-note, .portal-table-note) {
  color: var(--portal-muted);
}

.portal-page.portal-admin-runtime .portal-admin-write-actions {
  gap: 8px;
  align-items: center;
}

.portal-page.portal-admin-runtime .portal-button--quiet {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-action);
  box-shadow: none;
}

.portal-page.portal-admin-runtime .portal-button--quiet:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  color: var(--portal-action-hover);
  transform: none;
  box-shadow: none;
}

.portal-page.portal-admin-runtime .portal-button:disabled {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  box-shadow: none;
}

.portal-page.portal-admin-runtime .portal-badge[data-status="processing"] {
  border-color: var(--portal-info);
  color: var(--portal-info);
}

.portal-page.portal-admin-runtime .portal-badge[data-status="completed"] {
  border-color: var(--portal-success);
  color: var(--portal-success);
}

.portal-page.portal-admin-runtime .portal-badge[data-status="guarded"] {
  border-color: var(--portal-warning);
  color: var(--portal-warning);
}

.portal-page.portal-admin-runtime .portal-badge[data-status="failed"] {
  border-color: var(--portal-danger);
  color: var(--portal-danger);
}

.portal-page.portal-admin-runtime .portal-badge[data-status="failed_no_charge"] {
  border-color: var(--portal-danger);
  color: var(--portal-danger);
}

.portal-page.portal-admin-runtime :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid var(--portal-focus) !important;
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .portal-page.portal-admin-runtime .portal-work-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .portal-page.portal-admin-runtime :is(.portal-button--primary, .portal-button--quiet, .portal-data-table .portal-button) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-admin-runtime :is(.portal-card, .portal-metric, .portal-data-table tbody tr, .portal-button) {
    transition: none;
    transform: none;
  }
}

/* Final light Partner Readiness surface */
/* Partner Readiness is a dense, private customer workflow: one primary form,
   one status rail and two compact server-owned timelines. It deliberately
   reuses the shared teal/cyan tokens and does not introduce referral, CRM or
   marketing-card treatment. */
.portal-page.portal-partner-readiness {
  display: grid;
  gap: 16px;
  color: var(--portal-ink);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-state {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 16px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-lg);
  background: var(--portal-surface-light);
  box-shadow: none;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-state h2,
.portal-page.portal-partner-readiness .portal-partner-readiness-state p {
  margin: 0;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-state h2 {
  color: var(--portal-ink);
  font-size: 20px;
  line-height: 1.3;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-state p,
.portal-page.portal-partner-readiness .portal-partner-readiness-state dt,
.portal-page.portal-partner-readiness .portal-partner-readiness-state dd {
  color: var(--portal-muted);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-state dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(88px, 1fr));
  gap: 8px;
  margin: 0;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-state dl > div {
  display: grid;
  gap: 2px;
  min-width: 88px;
  padding: 8px 10px;
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-md);
  background: var(--portal-surface-soft);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-state dt {
  font-size: 12px;
  font-weight: 600;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-state dd {
  margin: 0;
  color: var(--portal-ink);
  font-size: 14px;
  font-weight: 700;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(272px, 0.42fr);
  gap: 16px;
  align-items: start;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-aside {
  display: grid;
  gap: 16px;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-form,
.portal-page.portal-partner-readiness .portal-partner-readiness-action {
  display: grid;
  gap: 16px;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-form .portal-input,
.portal-page.portal-partner-readiness .portal-partner-readiness-form .portal-select,
.portal-page.portal-partner-readiness .portal-partner-readiness-form .portal-textarea {
  min-height: 44px;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-form .portal-textarea {
  min-height: 116px;
  resize: vertical;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-options {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 14px;
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-md);
  background: var(--portal-surface-soft);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-options > legend,
.portal-page.portal-partner-readiness .portal-partner-readiness-options > p {
  padding: 0;
  margin: 0;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-options > legend {
  color: var(--portal-ink);
  font-weight: 700;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-options > p,
.portal-page.portal-partner-readiness .portal-partner-readiness-action p,
.portal-page.portal-partner-readiness .portal-partner-readiness-receipt p {
  color: var(--portal-muted);
  line-height: 1.55;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-choice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  min-height: 44px;
  padding: 10px;
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-md);
  background: var(--portal-surface-light);
  color: var(--portal-ink);
  cursor: pointer;
  transition: transform var(--portal-motion-fast);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-choice:is(:hover, :focus-within) {
  border-color: var(--portal-border-strong);
  background: var(--portal-light-hover-surface);
  transform: translateY(-1px);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-choice:has(input:checked) {
  border-color: var(--portal-action);
  background: var(--portal-light-accent-soft);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-choice:has(input:disabled) {
  cursor: not-allowed;
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
  transform: none;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-choice input,
.portal-page.portal-partner-readiness .portal-partner-readiness-confirm input {
  inline-size: 18px;
  block-size: 18px;
  margin: 1px 0 0;
  accent-color: var(--portal-action);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-choice span {
  display: grid;
  gap: 3px;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-choice strong {
  color: inherit;
  font-size: 14px;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-choice small {
  color: var(--portal-muted);
  font-size: 12px;
  line-height: 1.45;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-confirm,
.portal-page.portal-partner-readiness .portal-partner-readiness-receipt {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-md);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-receipt {
  grid-template-columns: minmax(0, 1fr);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-history {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-history ol {
  display: grid;
  gap: 0;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-history li {
  display: grid;
  gap: 3px;
  padding: 10px 0;
  border-top: 1px solid var(--portal-border);
}

.portal-page.portal-partner-readiness .portal-partner-readiness-history li:first-child {
  border-top: 0;
  padding-top: 0;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-history strong {
  color: var(--portal-ink);
  font-size: 14px;
}

.portal-page.portal-partner-readiness .portal-partner-readiness-history span,
.portal-page.portal-partner-readiness .portal-partner-readiness-history small {
  color: var(--portal-muted);
  overflow-wrap: anywhere;
}

.portal-page.portal-partner-readiness :is(input, select, textarea, button):focus-visible,
.portal-page.portal-partner-readiness .portal-partner-readiness-choice:focus-within {
  outline: 3px solid var(--portal-focus);
  outline-offset: 2px;
}

@media (max-width: 980px) {
  .portal-page.portal-partner-readiness .portal-partner-readiness-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .portal-page.portal-partner-readiness .portal-partner-readiness-state,
  .portal-page.portal-partner-readiness .portal-partner-readiness-form-grid,
  .portal-page.portal-partner-readiness .portal-partner-readiness-choice-grid,
  .portal-page.portal-partner-readiness .portal-partner-readiness-history {
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-page.portal-partner-readiness .portal-partner-readiness-state {
    gap: 12px;
  }

  .portal-page.portal-partner-readiness .portal-partner-readiness-state dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-page.portal-partner-readiness :is(.portal-button--primary, .portal-button--quiet) {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-page.portal-partner-readiness .portal-partner-readiness-choice {
    transition: none;
    transform: none;
  }
}

/* Aura dual-theme layer --------------------------------------------------
   The Portal stays one product in either mode. These aliases are deliberately
   semantic, so the Web shell, customer workspaces and ERP never fork their
   route markup simply to show light or dark surfaces. */
:root[data-portal-theme="dark"] {
  color-scheme: dark;
  --portal-app-canvas: var(--portal-dark-app-canvas);
  --portal-surface-light: var(--portal-dark-surface-light);
  --portal-surface-raised: var(--portal-dark-surface-raised);
  --portal-surface-strong: var(--portal-dark-surface-strong);
  --portal-surface-soft: var(--portal-dark-surface-soft);
  --portal-ink: var(--portal-dark-ink);
  --portal-text: var(--portal-ink);
  --portal-muted: var(--portal-dark-muted);
  --portal-muted-strong: var(--portal-dark-muted-strong);
  --portal-border: var(--portal-dark-border);
  --portal-border-strong: var(--portal-dark-border-strong);
  --portal-action: var(--portal-dark-action);
  --portal-action-hover: var(--portal-dark-action-hover);
  --portal-on-action: var(--portal-dark-on-action);
  --portal-brand: var(--portal-dark-brand);
  --portal-brand-hover: var(--portal-dark-brand-hover);
  --portal-context: var(--portal-dark-context);
  --portal-focus: var(--portal-dark-focus);
  --portal-warning: var(--portal-dark-warning);
  --portal-danger: var(--portal-dark-danger);
  --portal-success: var(--portal-dark-success);
  --portal-rail: var(--portal-dark-rail);
  --portal-rail-surface: var(--portal-dark-rail-surface);
  --portal-rail-hover: var(--portal-dark-rail-hover);
  --portal-rail-border: var(--portal-dark-rail-border);
  --portal-rail-text: var(--portal-dark-rail-text);
  --portal-rail-muted: var(--portal-dark-rail-muted);
  --portal-bg: var(--portal-app-canvas);
  --portal-bg-deep: var(--portal-dark-bg-deep);
  --portal-chrome: var(--portal-surface-light);
  --portal-surface: var(--portal-surface-light);
  --portal-accent: var(--portal-brand);
  --portal-accent-hover: var(--portal-brand-hover);
  --portal-accent-deep: var(--portal-action);
  --portal-accent-ink: var(--portal-on-action);
  --portal-info: var(--portal-context);
  --portal-light-canvas: var(--portal-app-canvas);
  --portal-light-surface: var(--portal-surface-light);
  --portal-light-soft: var(--portal-surface-soft);
  --portal-light-border: var(--portal-border);
  --portal-light-border-subtle: var(--portal-dark-border-subtle);
  --portal-light-accent-border: var(--portal-dark-accent-border);
  --portal-light-accent-soft: var(--portal-dark-accent-soft);
  --portal-light-hover-surface: var(--portal-dark-hover-surface);
  --portal-light-muted: var(--portal-muted);
  --portal-light-action: var(--portal-brand);
  --portal-landing-divider: var(--portal-border);
  --portal-landing-brand-border: var(--portal-dark-landing-brand-border);
  --portal-landing-kicker-border: var(--portal-dark-landing-kicker-border);
  --portal-landing-preview-border: var(--portal-dark-landing-preview-border);
  --portal-landing-callout-border: var(--portal-dark-landing-callout-border);
  --portal-landing-callout-surface: var(--portal-dark-landing-callout-surface);
  --portal-landing-studio-hover-border: var(--portal-dark-context);
  --portal-landing-footer-brand-text: var(--portal-dark-rail-text);
  --portal-landing-footer-muted: var(--portal-dark-rail-muted);
  --portal-control-border: var(--portal-border);
  --portal-control-surface: var(--portal-surface-light);
  --portal-control-hover: var(--portal-dark-hover-surface);
  --portal-control-disabled-border: var(--portal-dark-border-subtle);
  --portal-control-disabled-surface: var(--portal-dark-control-disabled-surface);
  --portal-control-disabled-text: var(--portal-dark-control-disabled-text);
  --portal-input-surface: var(--portal-dark-input-surface);
  --portal-table-divider: var(--portal-border);
  --portal-nav-active-text: var(--portal-dark-rail-text);
  --portal-nav-active-icon: var(--portal-dark-focus);
  --portal-nav-hover-surface: var(--portal-dark-rail-hover);
  --portal-light-placeholder: var(--portal-dark-placeholder);
  --portal-light-disclosure-open-border: var(--portal-dark-border-strong);
  --portal-shadow: var(--portal-dark-shadow);
  --portal-elevation-1: var(--portal-dark-elevation-1);
  --portal-elevation-2: var(--portal-dark-elevation-2);
  --portal-elevation-3: var(--portal-dark-elevation-3);
  --portal-elevation-float: var(--portal-dark-elevation-float);
  --portal-scrim: var(--portal-dark-scrim);
}

html[data-portal-theme] {
  background: var(--portal-app-canvas);
}

html[data-portal-theme] body,
html[data-portal-theme] .portal-shell,
html[data-portal-theme] .portal-main,
html[data-portal-theme] .portal-header,
html[data-portal-theme] .portal-mobile-nav,
html[data-portal-theme] .portal-sidebar,
html[data-portal-theme] .portal-landing,
html[data-portal-theme] .portal-auth-page--access,
html[data-portal-theme] .portal-card,
html[data-portal-theme] .portal-command-dialog,
html[data-portal-theme] :is(.portal-input, .portal-select, .portal-textarea) {
  transition: background-color var(--portal-transition), border-color var(--portal-transition), color var(--portal-transition), box-shadow var(--portal-transition);
}

.portal-theme-toggle {
  display: inline-flex;
  min-width: 44px;
  min-height: var(--portal-control-height);
  align-items: center;
  justify-content: center;
  gap: var(--portal-space-2);
  padding: var(--portal-space-2) var(--portal-space-3);
  border: 1px solid var(--portal-control-border);
  border-radius: 999px;
  background: var(--portal-control-surface);
  color: var(--portal-ink);
  box-shadow: none;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  touch-action: manipulation;
  transition: border-color var(--portal-motion-fast) var(--portal-motion-ease-standard), background-color var(--portal-motion-fast) var(--portal-motion-ease-standard), color var(--portal-motion-fast) var(--portal-motion-ease-standard), box-shadow var(--portal-motion-fast) var(--portal-motion-ease-standard), transform var(--portal-motion-fast) var(--portal-motion-ease-standard);
}

.portal-theme-toggle:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-control-hover);
  box-shadow: 0 6px 18px color-mix(in srgb, var(--portal-context) 13%, transparent);
}

.portal-theme-toggle:active { transform: translateY(1px); }

.portal-theme-toggle:focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 3px;
}

.portal-theme-toggle-icon {
  display: grid;
  width: var(--portal-icon-md);
  height: var(--portal-icon-md);
  place-items: center;
  color: var(--portal-context);
}

.portal-theme-toggle-icon .portal-icon {
  width: var(--portal-icon-md);
  height: var(--portal-icon-md);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.portal-theme-toggle-label { min-width: 0; }

.portal-landing-theme-switch {
  display: inline-grid;
  grid-template-columns: repeat(2, minmax(44px, 1fr));
  min-height: var(--portal-control-height);
  padding: 2px;
  border: 1px solid var(--portal-control-border);
  border-radius: 999px;
  background: var(--portal-control-surface);
  box-shadow: var(--portal-elevation-0);
}

.portal-landing-theme-switch button {
  min-width: 44px;
  min-height: 44px;
  padding: var(--portal-space-2) var(--portal-space-3);
  border: 1px solid var(--portal-control-surface);
  border-radius: 999px;
  background: var(--portal-control-surface);
  color: var(--portal-muted);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  touch-action: manipulation;
  transition: border-color var(--portal-motion-fast) var(--portal-motion-ease-standard), background-color var(--portal-motion-fast) var(--portal-motion-ease-standard), color var(--portal-motion-fast) var(--portal-motion-ease-standard), box-shadow var(--portal-motion-fast) var(--portal-motion-ease-standard), transform var(--portal-motion-fast) var(--portal-motion-ease-standard);
}

.portal-landing-theme-switch button:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-control-hover);
  color: var(--portal-ink);
}

.portal-landing-theme-switch button:active { transform: translateY(1px); }

.portal-landing-theme-switch button.is-active {
  border-color: var(--portal-action);
  background: var(--portal-action);
  color: var(--portal-on-action);
  box-shadow: var(--portal-elevation-1);
}

.portal-landing-theme-switch button:focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 3px;
}

@media (max-width: 700px) {
  .portal-landing-theme-switch { min-height: 44px; }
  .portal-landing-theme-switch button { padding-inline: var(--portal-space-2); }
}

.portal-auth-header-actions {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  gap: var(--portal-space-2);
}

html[data-portal-theme="dark"] .portal-shell:not(.portal-shell--auth):not(.portal-shell--landing),
html[data-portal-theme="dark"] .portal-body,
html[data-portal-theme="dark"] .portal-body--auth,
html[data-portal-theme="dark"] .portal-body--landing,
html[data-portal-theme="dark"] .portal-shell--auth,
html[data-portal-theme="dark"] .portal-shell--landing,
html[data-portal-theme="dark"] .portal-landing {
  background: var(--portal-app-canvas);
  color: var(--portal-ink);
}

html[data-portal-theme="dark"] .portal-shell:not(.portal-shell--auth):not(.portal-shell--landing) {
  background: radial-gradient(circle at 86% -12%, var(--portal-dark-canvas-glow-mint), transparent 31rem), radial-gradient(circle at 12% 100%, var(--portal-dark-canvas-glow-sky), transparent 32rem), var(--portal-app-canvas);
}

html[data-portal-theme="dark"] .portal-header,
html[data-portal-theme="dark"] .portal-mobile-nav,
html[data-portal-theme="dark"] .portal-sidebar,
html[data-portal-theme="dark"] .portal-auth-page--access .portal-auth-card,
html[data-portal-theme="dark"] .portal-landing-preview,
html[data-portal-theme="dark"] .portal-command-dialog {
  background: var(--portal-surface-light);
  border-color: var(--portal-border);
  color: var(--portal-ink);
}

html[data-portal-theme="dark"] .portal-sidebar {
  background: var(--portal-rail);
  border-right-color: var(--portal-rail-border);
}

html[data-portal-theme="dark"] .portal-card,
html[data-portal-theme="dark"] .portal-page :is(.portal-card, .portal-module-card, .portal-action-card, .portal-summary-item, .portal-dashboard-draft, .portal-studio-card, .portal-metric, .portal-landing-studio, .portal-landing-trust-grid > article),
html[data-portal-theme="dark"] .portal-page :is(.portal-notice, .portal-state, .portal-empty, .portal-form-section, .portal-table-wrap) {
  background: var(--portal-surface-light);
  border-color: var(--portal-border);
  color: var(--portal-ink);
}

html[data-portal-theme="dark"] .portal-page :is(.portal-card, .portal-module-card, .portal-action-card, .portal-summary-item, .portal-dashboard-draft, .portal-studio-card, .portal-metric, .portal-landing-studio, .portal-landing-trust-grid > article):hover {
  border-color: var(--portal-border-strong);
}

html[data-portal-theme="dark"] .portal-page :is(.portal-card-title, .portal-summary-value, .portal-action-card-title, .portal-action-card-count, .portal-module-card-title, .portal-dashboard-draft strong, .portal-studio-card strong, .portal-section-heading h2, .portal-section-heading h3, h1, h2, h3, h4) {
  color: var(--portal-ink);
}

html[data-portal-theme="dark"] .portal-page :is(.portal-card-subtitle, .portal-summary-key, .portal-action-card-body, .portal-action-card-link, .portal-module-card-footer, .portal-dashboard-draft small, .portal-studio-card p, .portal-studio-card .portal-badge, .portal-section-kicker, p, small, dt, .portal-form-note, .portal-field-help) {
  color: var(--portal-muted);
}

html[data-portal-theme="dark"] :is(.portal-input, .portal-select, .portal-textarea) {
  border-color: var(--portal-control-border);
  background: var(--portal-input-surface);
  color: var(--portal-ink);
}

html[data-portal-theme="dark"] :is(.portal-input, .portal-select, .portal-textarea)::placeholder { color: var(--portal-light-placeholder); }

html[data-portal-theme="dark"] :is(.portal-input, .portal-select, .portal-textarea):focus-visible,
html[data-portal-theme="dark"] :is(.portal-button, .portal-theme-toggle, a, button, summary):focus-visible {
  outline-color: var(--portal-focus);
}

html[data-portal-theme="dark"] .portal-button:not(.portal-button--primary),
html[data-portal-theme="dark"] .portal-landing .portal-button--quiet {
  border-color: var(--portal-control-border);
  background: var(--portal-control-surface);
  color: var(--portal-ink);
}

html[data-portal-theme="dark"] .portal-button:not(.portal-button--primary):hover:not(:disabled),
html[data-portal-theme="dark"] .portal-landing .portal-button--quiet:hover {
  border-color: var(--portal-border-strong);
  background: var(--portal-control-hover);
}

html[data-portal-theme="dark"] .portal-button--primary,
html[data-portal-theme="dark"] .portal-sidebar-create {
  border-color: var(--portal-action);
  background: var(--portal-action);
  color: var(--portal-on-action);
}

html[data-portal-theme="dark"] .portal-button--primary:hover:not(:disabled),
html[data-portal-theme="dark"] .portal-sidebar-create:hover {
  border-color: var(--portal-action-hover);
  background: var(--portal-action-hover);
  color: var(--portal-on-action);
}

html[data-portal-theme="dark"] .portal-data-table :is(th, td),
html[data-portal-theme="dark"] .portal-data-table td {
  border-color: var(--portal-table-divider);
  color: var(--portal-ink);
}

html[data-portal-theme="dark"] .portal-data-table tbody tr:hover { background: var(--portal-dark-table-hover); }

html[data-portal-theme="dark"] .portal-landing :is(.portal-landing-brand strong, .portal-landing-hero h1, .portal-landing-section h2, .portal-landing-workflow h2, .portal-landing-trust h2) { color: var(--portal-ink); }

html[data-portal-theme="dark"] .portal-landing :is(.portal-landing-brand small, .portal-landing-nav-links, .portal-landing-hero p, .portal-landing-section-heading p, .portal-landing-workflow p, .portal-landing-trust p) { color: var(--portal-muted); }

html[data-portal-theme="dark"] .portal-landing-footer { background: var(--portal-dark-landing-footer); }

html[data-portal-theme="dark"] .portal-landing-preview-bar,
html[data-portal-theme="dark"] .portal-landing-preview-body,
html[data-portal-theme="dark"] .portal-landing-preview-callout { border-color: var(--portal-border); }

@media (max-width: 700px) {
  .portal-theme-toggle { min-height: 44px; padding-inline: 12px; }
  .portal-header-actions .portal-theme-toggle-label,
  .portal-auth-header-actions .portal-theme-toggle-label,
  .portal-landing-nav-actions .portal-theme-toggle-label { display: none; }
}

/* The hero repeats the signed/public CTA immediately below the nav. At phone
   widths, leave header capacity to the three reviewed locale choices and the
   Aura switcher instead of clipping a second copy of the same action. */
@media (max-width: 420px) {
  .portal-landing-nav-primary { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html[data-portal-theme] body,
  html[data-portal-theme] .portal-shell,
  html[data-portal-theme] .portal-main,
  html[data-portal-theme] .portal-header,
  html[data-portal-theme] .portal-mobile-nav,
  html[data-portal-theme] .portal-sidebar,
  html[data-portal-theme] .portal-landing,
  html[data-portal-theme] .portal-auth-page--access,
  html[data-portal-theme] .portal-card,
  html[data-portal-theme] .portal-command-dialog,
  html[data-portal-theme] :is(.portal-input, .portal-select, .portal-textarea),
  .portal-theme-toggle {
    transition-duration: 0ms !important;
  }
}

/* Aura ERP data surfaces — truthful table read model. */
.portal-page .portal-admin-data-surface {
  display: grid;
  min-width: 0;
  gap: var(--portal-space-3);
}

.portal-page .portal-admin-data-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--portal-space-3);
  padding: var(--portal-space-3) var(--portal-space-4);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-md);
  background: var(--portal-surface-strong);
  box-shadow: var(--portal-elevation-1);
}

.portal-page .portal-admin-data-toolbar > div {
  display: grid;
  min-width: 0;
  gap: var(--portal-space-1);
}

.portal-page .portal-admin-data-toolbar span,
.portal-page .portal-admin-data-toolbar small {
  color: var(--portal-muted);
}

.portal-page .portal-admin-data-toolbar span {
  font-size: 12px;
  font-weight: 760;
  letter-spacing: .02em;
}

.portal-page .portal-admin-data-toolbar strong {
  color: var(--portal-ink);
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}

.portal-page .portal-admin-data-toolbar small {
  max-width: 68ch;
  font-size: 12px;
  line-height: 1.5;
}

.portal-page .portal-admin-data-toolbar .portal-badge {
  align-self: center;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-page .portal-admin-data-surface .portal-data-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: var(--portal-elevation-1);
}

.portal-page .portal-admin-data-surface [data-portal-table-scroll]:focus-visible {
  outline: 3px solid var(--portal-context);
  outline-offset: 2px;
}

.portal-page .portal-admin-data-surface .portal-data-table :is(th, td) {
  border-color: var(--portal-border);
}

.portal-page .portal-admin-data-surface .portal-badge[data-status="failed_no_charge"] {
  border-color: var(--portal-danger);
  background: color-mix(in srgb, var(--portal-danger) 8%, var(--portal-surface-light));
  color: var(--portal-danger);
}

@media (max-width: 700px) {
  .portal-page .portal-admin-data-surface .portal-data-table th:first-child,
  .portal-page .portal-admin-data-surface .portal-data-table tbody td:first-child:not(.portal-empty-cell) {
    min-width: 10rem;
    overflow-wrap: break-word;
  }
}

@media (min-width: 921px) {
  .portal-page .portal-admin-data-toolbar {
    flex-wrap: nowrap;
    align-items: center;
  }
}

/* Cinematic Mini is scoped to the public landing lifecycle. It reuses the
   existing semantic preview rather than adding generated imagery, and only
   animates composited properties once after the shell is complete. */
@keyframes portal-landing-motion-enter {
  from {
    opacity: 0;
    transform: translateY(28px) scale(.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

[data-landing-motion="cinematic-mini"] .landing-cinematic-hero {
  position: relative;
  isolation: isolate;
}

[data-landing-motion="cinematic-mini"] .landing-cinematic-hero::before {
  position: absolute;
  z-index: 0;
  top: clamp(-128px, -10vw, -42px);
  right: clamp(-82px, -8vw, -16px);
  width: min(52%, 560px);
  height: calc(100% + 160px);
  border: 1px solid color-mix(in srgb, var(--portal-context) 34%, var(--portal-border));
  border-radius: 50% 50% 0 0 / 33% 33% 0 0;
  background: radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--portal-brand) 11%, transparent), transparent 68%);
  content: "";
  opacity: .56;
  pointer-events: none;
  transform: translate3d(0, 0, 0);
}

[data-landing-motion="cinematic-mini"] .landing-cinematic-hero > * {
  position: relative;
  z-index: 1;
}

[data-landing-motion="cinematic-mini"] .landing-cinematic-preview {
  position: relative;
  isolation: isolate;
}

[data-landing-motion="cinematic-mini"] .landing-cinematic-preview::after {
  position: absolute;
  z-index: 2;
  inset: -12px 16px 16px -12px;
  display: block;
  border: 1px solid color-mix(in srgb, var(--portal-brand) 34%, var(--portal-border));
  border-radius: 46% 46% 18px 18px / 18% 18% 18px 18px;
  content: "";
  opacity: .46;
  pointer-events: none;
  transform: translate3d(0, 0, 0);
}

@keyframes portal-landing-cinematic-curtain {
  from {
    opacity: 0;
    clip-path: inset(0 0 100% 0);
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }
}

@keyframes portal-landing-cinematic-aperture {
  from {
    opacity: 0;
    transform: translate3d(0, 14px, 0) scale(.975);
  }
  to {
    opacity: .56;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

/* A finite scan gives the Workspace preview a clearly observable playback
   cue using only opacity and transform. It is removed by portal-motion.js
   after the two cycles, so the landing page never loops attention-seeking
   paint work. */
@keyframes portal-landing-preview-scan {
  0% {
    opacity: .34;
    transform: translate3d(-10px, 5px, 0) scale(.985);
  }
  45% {
    opacity: .92;
    transform: translate3d(5px, -2px, 0) scale(1.005);
  }
  100% {
    opacity: .46;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@media (prefers-reduced-motion: no-preference) {
  [data-landing-motion="cinematic-mini"] .landing-motion-header {
    position: sticky;
    top: 0;
    z-index: 30;
    transition:
      background-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
      border-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
      box-shadow var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
      backdrop-filter var(--portal-landing-motion-ui) var(--portal-landing-motion-ease);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-header[data-landing-motion-header="compact"] {
    border-color: var(--portal-border);
    background: color-mix(in srgb, var(--portal-app-canvas) 92%, transparent);
    box-shadow: var(--portal-elevation-1);
    backdrop-filter: blur(10px);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-header .portal-brand-mark {
    transition: transform var(--portal-landing-motion-ui) var(--portal-landing-motion-ease);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-header[data-landing-motion-header="compact"] .portal-brand-mark {
    transform: scale(.96);
  }

  [data-landing-motion="cinematic-mini"][data-landing-motion-phase="intro"] .landing-cinematic-hero::before {
    animation: portal-landing-cinematic-aperture var(--portal-landing-cinematic-aperture) var(--portal-landing-motion-ease) both;
  }

  [data-landing-motion="cinematic-mini"][data-landing-motion-phase="intro"] .landing-cinematic-preview::after {
    animation: portal-landing-cinematic-aperture var(--portal-landing-cinematic-aperture) var(--portal-landing-motion-ease) 120ms both;
  }

  [data-landing-motion="cinematic-mini"][data-landing-motion-playback="active"] .landing-cinematic-preview::after {
    border-width: 2px;
    animation: portal-landing-preview-scan 1700ms var(--portal-landing-motion-ease) 4 both;
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-hero:not(.is-ready) :is(
    .portal-landing-hero-copy h1,
    .portal-landing-hero-copy p,
    .portal-landing-hero-actions,
    .portal-landing-proof,
    .portal-landing-preview
  ) {
    opacity: 0;
    transform: translateY(24px);
  }

  [data-landing-motion="cinematic-mini"][data-landing-motion-phase="intro"] .landing-motion-hero.is-ready :is(
    .portal-landing-hero-copy h1,
    .portal-landing-hero-copy p,
    .portal-landing-hero-actions,
    .portal-landing-proof,
    .portal-landing-preview
  ) {
    animation: portal-landing-motion-enter var(--portal-landing-motion-hero) var(--portal-landing-motion-ease) both;
  }

  [data-landing-motion="cinematic-mini"][data-landing-motion-phase="intro"] .landing-motion-hero:not(.is-ready) .portal-landing-hero-copy h1 {
    clip-path: inset(0 0 100% 0);
  }

  [data-landing-motion="cinematic-mini"][data-landing-motion-phase="intro"] .landing-motion-hero.is-ready .portal-landing-hero-copy h1 {
    animation: portal-landing-cinematic-curtain var(--portal-landing-cinematic-curtain) var(--portal-landing-motion-ease) both;
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-hero.is-ready .portal-landing-hero-copy p {
    animation-delay: var(--portal-landing-motion-stagger);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-hero.is-ready .portal-landing-hero-actions {
    animation-delay: calc(var(--portal-landing-motion-stagger) * 2);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-hero.is-ready .portal-landing-proof {
    animation-delay: calc(var(--portal-landing-motion-stagger) * 3);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-hero.is-ready .portal-landing-preview {
    animation-delay: calc(var(--portal-landing-motion-stagger) * 4);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-hero.is-ready .landing-cinematic-step {
    animation: portal-landing-motion-enter var(--portal-landing-cinematic-step) var(--portal-landing-motion-ease) backwards;
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-hero.is-ready .landing-cinematic-step:nth-child(1) { animation-delay: calc(var(--portal-landing-motion-stagger) * 5); }
  [data-landing-motion="cinematic-mini"] .landing-motion-hero.is-ready .landing-cinematic-step:nth-child(2) { animation-delay: calc(var(--portal-landing-motion-stagger) * 6); }
  [data-landing-motion="cinematic-mini"] .landing-motion-hero.is-ready .landing-cinematic-step:nth-child(3) { animation-delay: calc(var(--portal-landing-motion-stagger) * 7); }
  [data-landing-motion="cinematic-mini"] .landing-motion-hero.is-ready .landing-cinematic-step:nth-child(4) { animation-delay: calc(var(--portal-landing-motion-stagger) * 8); }

  /* The preview is a small, bounded workflow playback. The active tile makes
     the sequence legible even when the intro is replayed after first paint. */
  [data-landing-motion="cinematic-mini"] .landing-cinematic-step {
    transition:
      transform var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
      box-shadow var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
      border-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
      background-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease);
  }

  [data-landing-motion="cinematic-mini"] .landing-cinematic-step.landing-motion-step-active {
    border-color: color-mix(in srgb, var(--portal-context) 64%, var(--portal-border));
    background: color-mix(in srgb, var(--portal-context) 12%, var(--portal-surface-light));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--portal-context) 16%, transparent);
    color: var(--portal-context);
    transform: translateY(-4px);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-pending {
    opacity: 0;
    transform: translateY(24px);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-pending:focus-within {
    opacity: 1;
    transform: none;
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-visible {
    animation: portal-landing-motion-enter var(--portal-landing-motion-reveal) var(--portal-landing-motion-ease) both;
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-visible .landing-motion-reveal-title {
    animation: portal-landing-motion-enter var(--portal-landing-motion-reveal) var(--portal-landing-motion-ease) both;
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-visible .landing-motion-card {
    animation: portal-landing-motion-enter var(--portal-landing-motion-reveal) var(--portal-landing-motion-ease) backwards;
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-visible .landing-motion-card:nth-child(1) { animation-delay: var(--portal-landing-motion-stagger); }
  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-visible .landing-motion-card:nth-child(2) { animation-delay: calc(var(--portal-landing-motion-stagger) * 2); }
  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-visible .landing-motion-card:nth-child(3) { animation-delay: calc(var(--portal-landing-motion-stagger) * 3); }
  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-visible .landing-motion-card:nth-child(4) { animation-delay: calc(var(--portal-landing-motion-stagger) * 4); }
  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-visible .landing-motion-card:nth-child(5) { animation-delay: calc(var(--portal-landing-motion-stagger) * 5); }
  [data-landing-motion="cinematic-mini"] .landing-motion-reveal.is-visible .landing-motion-card:nth-child(6) { animation-delay: calc(var(--portal-landing-motion-stagger) * 6); }

  [data-landing-motion="cinematic-mini"] .landing-motion-workflow.is-visible .landing-motion-card {
    animation-duration: 400ms;
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-workflow.is-visible .landing-motion-card:nth-child(1) { animation-delay: 0ms; }
  [data-landing-motion="cinematic-mini"] .landing-motion-workflow.is-visible .landing-motion-card:nth-child(2) { animation-delay: var(--portal-landing-motion-stagger); }
  [data-landing-motion="cinematic-mini"] .landing-motion-workflow.is-visible .landing-motion-card:nth-child(3) { animation-delay: calc(var(--portal-landing-motion-stagger) * 2); }
  [data-landing-motion="cinematic-mini"] .landing-motion-workflow.is-visible .landing-motion-card:nth-child(4) { animation-delay: calc(var(--portal-landing-motion-stagger) * 3); }

  [data-landing-motion="cinematic-mini"] .landing-motion-workflow ol {
    position: relative;
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-workflow ol::before {
    position: absolute;
    top: 24px;
    bottom: 24px;
    left: 24px;
    width: 1px;
    background: var(--portal-light-accent-border);
    content: "";
    opacity: 0;
    transform: scaleY(0);
    transform-origin: top;
    transition:
      opacity var(--portal-landing-motion-reveal) var(--portal-landing-motion-ease),
      transform var(--portal-landing-motion-reveal) var(--portal-landing-motion-ease);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-workflow.is-visible ol::before {
    opacity: 1;
    transform: scaleY(1);
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-final .landing-motion-cta {
    transform-origin: center;
  }

  /* Keyboard focus is always more important than a decorative delayed reveal. */
  [data-landing-motion="cinematic-mini"] .landing-motion-hero:focus-within:not(:has([data-landing-motion-replay]:focus)) :is(
    .portal-landing-hero-copy h1,
    .portal-landing-hero-copy p,
    .portal-landing-hero-actions,
    .portal-landing-proof,
    .portal-landing-preview
  ),
  [data-landing-motion="cinematic-mini"] .landing-motion-reveal:focus-within,
  [data-landing-motion="cinematic-mini"] .landing-motion-reveal:focus-within .landing-motion-card,
  [data-landing-motion="cinematic-mini"] .landing-motion-reveal .landing-motion-card:focus-visible {
    animation: none;
    opacity: 1;
    transform: none;
    clip-path: none;
  }

  [data-landing-motion="cinematic-mini"] .landing-motion-card,
  [data-landing-motion="cinematic-mini"] .landing-motion-cta {
    transition:
      transform var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
      box-shadow var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
      border-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease),
      background-color var(--portal-landing-motion-ui) var(--portal-landing-motion-ease);
  }

  @media (hover: hover) and (pointer: fine) {
    [data-landing-motion="cinematic-mini"] .portal-landing-studio.landing-motion-card:is(:hover, :focus-visible) {
      transform: translateY(-4px) scale(1.01);
    }

    [data-landing-motion="cinematic-mini"] .landing-motion-cta:is(:hover, :focus-visible) {
      transform: translateY(-1px);
    }

    [data-landing-motion="cinematic-mini"] .landing-motion-cta > span[aria-hidden="true"] {
      transition: transform var(--portal-landing-motion-fast) var(--portal-landing-motion-ease);
    }

    [data-landing-motion="cinematic-mini"] .landing-motion-cta:is(:hover, :focus-visible) > span[aria-hidden="true"] {
      transform: translateX(4px);
    }
  }

  @media (hover: none), (pointer: coarse) {
    [data-landing-motion="cinematic-mini"] .landing-motion-card:active,
    [data-landing-motion="cinematic-mini"] .landing-motion-cta:active {
      transform: scale(.99);
      transition-duration: 100ms;
    }
  }
}

@media (max-width: 600px) {
  [data-landing-motion="cinematic-mini"] .landing-motion-workflow ol::before {
    display: none;
  }

  [data-landing-motion="cinematic-mini"] .landing-cinematic-hero::before {
    top: -84px;
    right: -50px;
    width: min(74%, 360px);
    height: calc(100% + 112px);
  }

  [data-landing-motion="cinematic-mini"] .landing-cinematic-preview::after {
    inset: -8px 10px 10px -8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-landing-motion="cinematic-mini"] :is(
    .landing-motion-hero,
    .landing-cinematic-hero .portal-landing-hero-copy h1,
    .landing-cinematic-step,
    .landing-motion-reveal,
    .landing-motion-reveal-title,
    .landing-motion-card,
    .landing-motion-cta,
    .landing-motion-workflow ol::before
  ) {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    transition: none !important;
  }
}

/* Aura PWA and internal ERP shell distinction -----------------------------
   Both responsive applications share the signed Portal foundation, route
   manifest and accessibility rules. The marker is presentation-only: route
   authorization remains entirely server-issued by the existing renderer. */
.portal-shell[data-portal-app-kind="customer"] .portal-header {
  border-bottom-color: var(--portal-border);
}

.portal-shell[data-portal-app-kind="admin"] .portal-header {
  border-bottom-color: color-mix(in srgb, var(--portal-context) 38%, var(--portal-border));
  box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--portal-context) 18%, transparent);
}

@keyframes portal-mobile-dock-enter {
  from {
    opacity: 0;
    transform: translateY(calc(var(--portal-motion-distance) + 2px));
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.portal-mobile-nav[data-portal-mobile-nav-kind="customer"],
.portal-mobile-nav[data-portal-mobile-nav-kind="admin"] {
  min-height: 44px;
  padding-bottom: max(var(--portal-space-2), calc(var(--portal-space-2) + var(--portal-safe-bottom)));
  border-top-width: 1px;
  box-shadow: 0 -12px 30px color-mix(in srgb, var(--portal-ink) 14%, transparent);
}

.portal-mobile-nav[data-portal-mobile-nav-kind="customer"] {
  border-top-color: color-mix(in srgb, var(--portal-brand) 36%, var(--portal-rail-border));
  background: var(--portal-rail);
}

.portal-mobile-nav[data-portal-mobile-nav-kind="admin"] {
  border-top: 2px solid var(--portal-context);
  background: var(--portal-rail-surface);
}

.portal-mobile-nav[data-portal-mobile-nav-kind] .portal-mobile-nav-link {
  min-height: 44px;
  color: var(--portal-rail-muted);
  transition:
    transform var(--portal-motion-fast) var(--portal-motion-ease-standard),
    background-color var(--portal-motion-fast) var(--portal-motion-ease-standard),
    border-color var(--portal-motion-fast) var(--portal-motion-ease-standard),
    color var(--portal-motion-fast) var(--portal-motion-ease-standard);
}

.portal-mobile-nav[data-portal-mobile-nav-kind="customer"] .portal-mobile-nav-link[aria-current="page"] {
  border-color: color-mix(in srgb, var(--portal-brand) 66%, transparent);
  background: color-mix(in srgb, var(--portal-brand) 22%, transparent);
  color: var(--portal-rail-text);
}

.portal-mobile-nav[data-portal-mobile-nav-kind="admin"] .portal-mobile-nav-link[aria-current="page"] {
  border-color: color-mix(in srgb, var(--portal-context) 72%, transparent);
  background: color-mix(in srgb, var(--portal-context) 22%, transparent);
  color: var(--portal-rail-text);
}

.portal-mobile-nav[data-portal-mobile-nav-kind] .portal-mobile-nav-link[aria-current="page"] .portal-mobile-nav-icon {
  color: var(--portal-rail-text);
}

@media (prefers-reduced-motion: no-preference) {
  .portal-mobile-nav[data-portal-mobile-nav-kind] {
    animation: portal-mobile-dock-enter var(--portal-motion-base) var(--portal-motion-ease-emphasis) both;
  }

  @media (hover: hover) and (pointer: fine) {
    .portal-mobile-nav[data-portal-mobile-nav-kind] .portal-mobile-nav-link:hover {
      transform: translateY(-1px);
    }
  }

  @media (hover: none), (pointer: coarse) {
    .portal-mobile-nav[data-portal-mobile-nav-kind] .portal-mobile-nav-link:active {
      transform: scale(.98);
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-mobile-nav[data-portal-mobile-nav-kind] {
    animation: none !important;
    transform: none !important;
  }

  .portal-mobile-nav[data-portal-mobile-nav-kind] .portal-mobile-nav-link {
    transition: none !important;
    transform: none !important;
  }
}

/* App-wide surface motion --------------------------------------------------
   The signed customer workspace and internal ERP share a quiet route-entry
   grammar, while retaining different information density.  These selectors
   are deliberately presentation-only: they consume the route marker already
   chosen by Portal and do not inspect roles, records or capability state. */
@keyframes portal-app-surface-enter {
  from {
    opacity: 0;
    transform: translateY(var(--portal-motion-distance));
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: no-preference) {
  /* A regular tool/detail page gets one spatially continuous entrance. The
     two command centers instead sequence only their primary decision layers. */
  .portal-shell[data-portal-app-kind="customer"] .portal-page:not(.portal-dashboard-app),
  .portal-shell[data-portal-app-kind="admin"] .portal-page:not(.portal-admin-home),
  .portal-shell[data-portal-app-kind="admin"] .portal-admin-home > .portal-admin-guard,
  .portal-shell[data-portal-app-kind="admin"] .portal-admin-home > .portal-admin-grid {
    animation: portal-app-surface-enter var(--portal-motion-base) var(--portal-motion-ease-emphasis) both;
    animation-delay: calc(var(--portal-app-motion-index, 0) * 34ms);
  }

  .portal-shell[data-portal-app-kind="admin"] .portal-admin-home > .portal-admin-guard {
    --portal-app-motion-index: 0;
  }

  .portal-shell[data-portal-app-kind="admin"] .portal-admin-home > .portal-admin-grid {
    --portal-app-motion-index: 2;
  }

  /* Only navigation-like cards respond to fine-pointer hover. The selected
     targets are already semantic links, so the motion is feedback rather
     than a new click target or an implied data action. */
  @media (hover: hover) and (pointer: fine) {
    .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-app .portal-dashboard-draft,
    .portal-shell[data-portal-app-kind="admin"] .portal-admin-home .portal-admin-work-queue {
      transition:
        transform var(--portal-motion-fast) var(--portal-motion-ease-standard),
        border-color var(--portal-motion-fast) var(--portal-motion-ease-standard),
        background-color var(--portal-motion-fast) var(--portal-motion-ease-standard),
        color var(--portal-motion-fast) var(--portal-motion-ease-standard);
    }

    .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-app .portal-dashboard-draft:hover,
    .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-app .portal-dashboard-draft:focus-visible,
    .portal-shell[data-portal-app-kind="admin"] .portal-admin-home .portal-admin-work-queue:hover,
    .portal-shell[data-portal-app-kind="admin"] .portal-admin-home .portal-admin-work-queue:focus-visible {
      transform: translateY(-1px);
    }
  }

  @media (hover: none), (pointer: coarse) {
    .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-app .portal-dashboard-draft:active,
    .portal-shell[data-portal-app-kind="admin"] .portal-admin-home .portal-admin-work-queue:active {
      transform: scale(.985);
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-shell[data-portal-app-kind] .portal-page,
  .portal-shell[data-portal-app-kind] .portal-dashboard-app .portal-dashboard-overview,
  .portal-shell[data-portal-app-kind] .portal-admin-home > :is(.portal-admin-guard, .portal-admin-grid),
  .portal-shell[data-portal-app-kind] :is(.portal-dashboard-draft, .portal-admin-work-queue) {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}


/* Always-on Feature Family Explorer ---------------------------------------
   The explorer borrows the useful directory rhythm of a mature AI suite,
   while remaining a local, member-route navigation layer. It deliberately
   shows no counters, availability signals or operational status. */
.portal-feature-family-explorer {
  display: grid;
  gap: var(--portal-space-4);
  padding: var(--portal-space-5);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-lg);
  background: var(--portal-surface-strong);
  box-shadow: var(--portal-elevation-1);
}

.portal-feature-family-explorer-heading h2,
.portal-feature-family-explorer-heading p {
  margin: 0;
}

.portal-feature-family-explorer-heading h2 {
  margin-top: var(--portal-space-1);
  color: var(--portal-ink);
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.25;
  letter-spacing: -0.02em;
}

.portal-feature-family-explorer-heading p {
  max-width: 66ch;
  margin-top: var(--portal-space-2);
  color: var(--portal-muted);
  font-size: 14px;
  line-height: 1.55;
}

.portal-feature-family-explorer-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--portal-space-3);
}

.portal-feature-family-explorer-card {
  display: grid;
  min-width: 0;
  min-height: 44px;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: var(--portal-space-3);
  align-content: start;
  padding: var(--portal-space-4);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-md);
  background: var(--portal-surface-light);
  color: inherit;
  text-decoration: none;
  touch-action: manipulation;
}

.portal-feature-family-explorer-icon {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid var(--portal-border-strong);
  border-radius: var(--portal-radius-sm);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-feature-family-explorer-icon .portal-icon {
  width: 20px;
  height: 20px;
}

.portal-feature-family-explorer-copy {
  display: grid;
  min-width: 0;
  gap: var(--portal-space-1);
}

.portal-feature-family-explorer-copy strong {
  color: var(--portal-ink);
  font-size: 14px;
  line-height: 1.35;
}

.portal-feature-family-explorer-copy > span {
  color: var(--portal-muted);
  font-size: 12px;
  line-height: 1.45;
}

.portal-feature-family-explorer-open {
  display: inline-flex;
  grid-column: 2;
  gap: var(--portal-space-2);
  align-items: center;
  color: var(--portal-action);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
}

.portal-feature-family-explorer-open b {
  font-size: 16px;
  line-height: 1;
}

.portal-feature-family-explorer-card:focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 3px;
}

.portal-feature-jump {
  min-height: 44px;
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  color: var(--portal-muted-strong);
  touch-action: manipulation;
}

.portal-feature-jump:focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 3px;
}

/* The family switcher is a local route navigator. The current studio remains
   visible as a non-interactive page marker so the taxonomy is never lost
   while a customer compares its sibling directories. */
.portal-feature-jump--current {
  min-height: 44px;
  border-color: var(--portal-action);
  background: var(--portal-surface-soft);
  color: var(--portal-action);
  font-weight: 800;
  cursor: default;
  touch-action: manipulation;
}

.portal-feature-jump--current:focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 3px;
}

@media (max-width: 980px) {
  .portal-feature-family-explorer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .portal-feature-family-explorer {
    padding: var(--portal-space-4);
  }

  .portal-feature-family-explorer-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Customer workspace reveal ------------------------------------------------
   Feature discovery and the Workspace Menu are long, signed application
   surfaces. Their completed semantic content becomes readable immediately;
   this small layer only gives each decision group a calmer arrival.  It
   intentionally has no status-, job- or readiness-dependent selector. */
@keyframes portal-workspace-reveal {
  from {
    opacity: 0;
    transform: translateY(var(--portal-motion-distance));
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-motion-target.is-pending {
    opacity: 0;
    transform: translateY(var(--portal-motion-distance));
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-motion-target.is-pending:focus-within {
    opacity: 1;
    transform: none;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-motion-target.is-visible {
    animation: portal-workspace-reveal var(--portal-motion-base) var(--portal-motion-ease-emphasis) both;
  }

  /* Focus is an interaction, not a decorative reveal.  When a keyboard user
     enters a late card, every part of that destination is immediately
     readable instead of waiting for a backwards stagger animation. */
  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-motion-target.is-visible:focus-within {
    opacity: 1;
    transform: none;
    animation: none;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-motion-target.is-visible:focus-within .portal-workspace-motion-item {
    opacity: 1;
    transform: none;
    animation: none;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-workspace-motion-target.is-visible .portal-workspace-motion-item {
    animation: portal-workspace-reveal var(--portal-motion-base) var(--portal-motion-ease-emphasis) backwards;
    animation-delay: calc(var(--portal-workspace-motion-index, 0) * 34ms);
  }

  @media (hover: hover) and (pointer: fine) {
    .portal-shell[data-portal-app-kind="customer"] :is(
      .portal-start-guide-step,
      .portal-feature-family-explorer-card,
      .portal-capability-hub-card,
      .portal-feature-jump,
      .portal-catalog-item .portal-module-card,
      .portal-workspace-menu-card
    ) {
      transition:
        transform var(--portal-motion-fast) var(--portal-motion-ease-standard),
        border-color var(--portal-motion-fast) var(--portal-motion-ease-standard),
        box-shadow var(--portal-motion-fast) var(--portal-motion-ease-standard);
    }

    .portal-shell[data-portal-app-kind="customer"] :is(
      .portal-start-guide-step,
      .portal-feature-family-explorer-card,
      .portal-capability-hub-card,
      .portal-feature-jump,
      .portal-catalog-item .portal-module-card,
      .portal-workspace-menu-card
    ):is(:hover, :focus-visible) {
      transform: translateY(-1px);
    }
  }

  @media (hover: none), (pointer: coarse) {
    .portal-shell[data-portal-app-kind="customer"] :is(
      .portal-start-guide-step,
      .portal-feature-family-explorer-card,
      .portal-capability-hub-card,
      .portal-feature-jump,
      .portal-catalog-item .portal-module-card,
      .portal-workspace-menu-card
    ):active {
      transform: scale(.985);
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-shell[data-portal-app-kind="customer"] :is(
    .portal-workspace-motion-target,
    .portal-workspace-motion-item,
    .portal-start-guide-step,
    .portal-feature-family-explorer,
    .portal-feature-family-explorer-card,
    .portal-capability-hub-card,
    .portal-feature-jump,
    .portal-catalog-item .portal-module-card,
    .portal-workspace-menu-card
  ) {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* Admin ERP mobile data surface harmony ---------------------------------
   The server-issued ERP tables keep their semantic markup and scroll-region
   contract. This final presentation layer only restores a readable light/dark
   token surface for the mobile scroll cue and frozen first cell. */
@media (max-width: 700px) {
  .portal-shell[data-portal-app-kind="admin"] .portal-page .portal-admin-data-surface .portal-data-table-scroll-hint {
    border-bottom-color: var(--portal-border);
    background: var(--portal-surface-soft);
    color: var(--portal-muted);
  }

  .portal-shell[data-portal-app-kind="admin"] .portal-page .portal-admin-data-surface .portal-data-table th:first-child,
  .portal-shell[data-portal-app-kind="admin"] .portal-page .portal-admin-data-surface .portal-data-table tbody td:first-child:not(.portal-empty-cell) {
    background: var(--portal-surface-light);
    box-shadow: 8px 0 12px -12px color-mix(in srgb, var(--portal-ink) 60%, transparent);
  }

  .portal-shell[data-portal-app-kind="admin"] .portal-page .portal-admin-data-surface .portal-data-table tbody tr:hover > td:first-child:not(.portal-empty-cell) {
    background: var(--portal-light-hover-surface);
  }
}

/* Customer Shell Harmony ----------------------------------------------
   The customer app keeps its server-rendered navigation and route manifest;
   this final visual layer only clarifies the already-mounted desktop rail,
   command surface and five-item mobile dock.  It intentionally contains no
   request, identity, capability, billing or execution concern. */
@keyframes portal-customer-shell-enter {
  from {
    opacity: 0;
    transform: translateX(calc(var(--portal-motion-distance) * -1));
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes portal-customer-command-enter {
  from {
    opacity: 0;
    transform: translateY(calc(var(--portal-motion-distance) * -1));
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.portal-shell[data-portal-app-kind="customer"] .portal-sidebar {
  border-right-color: var(--portal-rail-border);
  background: var(--portal-rail);
}

.portal-shell[data-portal-app-kind="customer"] .portal-brand {
  margin-bottom: var(--portal-space-4);
  padding-bottom: var(--portal-space-3);
  border-bottom: 1px solid var(--portal-rail-border);
}

.portal-shell[data-portal-app-kind="customer"] .portal-sidebar-action-row {
  margin-bottom: var(--portal-space-3);
}

.portal-shell[data-portal-app-kind="customer"] .portal-sidebar-search {
  margin-bottom: var(--portal-space-3);
}

.portal-shell[data-portal-app-kind="customer"] .portal-nav {
  gap: var(--portal-space-2);
}

.portal-shell[data-portal-app-kind="customer"] .portal-nav-group {
  padding: 0 0 var(--portal-space-2);
  border-bottom: 1px solid var(--portal-rail-border);
}

.portal-shell[data-portal-app-kind="customer"] .portal-nav-group:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.portal-shell[data-portal-app-kind="customer"] .portal-nav-group--current {
  border-bottom-color: var(--portal-border-strong);
}

.portal-shell[data-portal-app-kind="customer"] .portal-nav-summary {
  min-height: 44px;
  padding-inline: var(--portal-space-3);
  border-radius: var(--portal-radius-sm);
}

.portal-shell[data-portal-app-kind="customer"] .portal-nav-summary:is(:hover, :focus-visible),
.portal-shell[data-portal-app-kind="customer"] .portal-nav-link:is(:hover, :focus-visible),
.portal-shell[data-portal-app-kind="customer"] .portal-sidebar-search:is(:hover, :focus-visible),
.portal-shell[data-portal-app-kind="customer"] .portal-sidebar-focus-toggle:is(:hover, :focus-visible) {
  border-color: var(--portal-rail-border);
  background: var(--portal-nav-hover-surface);
  color: var(--portal-rail-text);
}

.portal-shell[data-portal-app-kind="customer"] :is(
  .portal-nav-summary,
  .portal-nav-link,
  .portal-sidebar-search,
  .portal-sidebar-focus-toggle,
  .portal-command-item,
  .portal-mobile-nav-link,
  .portal-command-close
):focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 2px;
}

.portal-shell[data-portal-app-kind="customer"] .portal-nav-links {
  gap: var(--portal-space-1);
  padding: var(--portal-space-1) 0 var(--portal-space-2);
}

.portal-shell[data-portal-app-kind="customer"] .portal-nav-link {
  min-height: 44px;
  padding: 10px var(--portal-space-3);
  border-radius: var(--portal-radius-sm);
}

.portal-shell[data-portal-app-kind="customer"] .portal-nav-link[aria-current="page"] {
  box-shadow: inset 3px 0 0 var(--portal-brand);
}

.portal-shell[data-portal-app-kind="customer"] .portal-header {
  border-bottom-color: var(--portal-border);
  background: var(--portal-surface-light);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-dialog {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
  box-shadow: var(--portal-elevation-3);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-close {
  min-width: 44px;
  min-height: 44px;
  border-color: var(--portal-control-border);
  background: var(--portal-control-surface);
  color: var(--portal-ink);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-header {
  border-bottom-color: var(--portal-border);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-header h2,
.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item-copy strong {
  color: var(--portal-ink);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-kicker,
.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item-arrow,
.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-search {
  color: var(--portal-context);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-search-icon {
  color: var(--portal-context);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-search {
  border-color: var(--portal-control-border);
  background: var(--portal-surface-soft);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-search:focus-within {
  border-color: var(--portal-context);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--portal-context) 20%, transparent);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-search input {
  color: var(--portal-ink);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-search input::placeholder,
.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-hint,
.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item-copy small,
.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-count {
  color: var(--portal-muted);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-empty {
  color: var(--portal-warning);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-hint kbd {
  border-color: var(--portal-control-border);
  background: var(--portal-surface-soft);
  color: var(--portal-muted);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item {
  border-color: transparent;
  color: var(--portal-ink);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item[aria-current="page"] {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item:is(:hover, :focus-visible) {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-ink);
}

.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item:focus-visible,
.portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-close:focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 2px;
}

.portal-shell[data-portal-app-kind="customer"] .portal-mobile-nav-link:focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: no-preference) {
  .portal-shell[data-portal-app-kind="customer"] .portal-command-palette:not([hidden]) .portal-command-dialog {
    animation: portal-customer-command-enter var(--portal-motion-base) var(--portal-motion-ease-emphasis) both;
  }

  @media (hover: hover) and (pointer: fine) {
    .portal-shell[data-portal-app-kind="customer"] :is(
      .portal-nav-summary,
      .portal-nav-link,
      .portal-sidebar-search,
      .portal-sidebar-focus-toggle
    ) {
      transition:
        transform var(--portal-motion-fast) var(--portal-motion-ease-standard),
        border-color var(--portal-motion-fast) var(--portal-motion-ease-standard),
        background-color var(--portal-motion-fast) var(--portal-motion-ease-standard),
        color var(--portal-motion-fast) var(--portal-motion-ease-standard),
        box-shadow var(--portal-motion-fast) var(--portal-motion-ease-standard);
    }

    .portal-shell[data-portal-app-kind="customer"] :is(
      .portal-nav-summary,
      .portal-nav-link,
      .portal-sidebar-search,
      .portal-sidebar-focus-toggle
    ):is(:hover, :focus-visible) {
      transform: translateY(-1px);
    }

    .portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item {
      transition:
        transform var(--portal-motion-fast) var(--portal-motion-ease-standard),
        border-color var(--portal-motion-fast) var(--portal-motion-ease-standard),
        background-color var(--portal-motion-fast) var(--portal-motion-ease-standard),
        color var(--portal-motion-fast) var(--portal-motion-ease-standard);
    }

    .portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item:is(:hover, :focus-visible) {
      transform: translateY(-1px);
    }
  }

  @media (hover: none), (pointer: coarse) {
    .portal-shell[data-portal-app-kind="customer"] :is(
      .portal-nav-summary,
      .portal-nav-link,
      .portal-sidebar-search,
      .portal-sidebar-focus-toggle
    ):active {
      transform: scale(.985);
    }

    .portal-shell[data-portal-app-kind="customer"] .portal-command-palette .portal-command-item:active {
      transform: scale(.985);
    }
  }
}

@media (min-width: 981px) and (prefers-reduced-motion: no-preference) {
  .portal-shell[data-portal-app-kind="customer"]:not(.portal-shell--focus) .portal-sidebar {
    animation: portal-customer-shell-enter var(--portal-motion-base) var(--portal-motion-ease-emphasis) both;
  }
}

@media (max-width: 620px) {
  .portal-shell[data-portal-app-kind="customer"] .portal-header {
    gap: var(--portal-space-2);
    min-width: 0;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-crumbs {
    min-width: 0;
    flex: 1 1 auto;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-session-chip {
    width: 44px;
    min-width: 44px;
    padding: 0;
    justify-content: center;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-session-copy {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-shell[data-portal-app-kind="customer"] :is(
    .portal-sidebar,
    .portal-nav-summary,
    .portal-nav-link,
    .portal-sidebar-search,
    .portal-sidebar-focus-toggle
  ),
  .portal-shell[data-portal-app-kind="customer"] .portal-command-palette :is(
    .portal-command-dialog,
    .portal-command-item,
    .portal-command-close
  ) {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* Final responsive app dock harmony */
/* Customer and ERP retain distinct surfaces while sharing the same compact,
   safe-area-aware five-action rhythm. */
@media (max-width: 700px) {
  .portal-mobile-nav[data-portal-mobile-nav-kind="customer"],
  .portal-mobile-nav[data-portal-mobile-nav-kind="admin"] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--portal-space-2);
    min-height: 54px;
    padding: var(--portal-space-2)
      max(var(--portal-space-2), calc(var(--portal-space-2) + var(--portal-safe-right)))
      calc(8px + var(--portal-safe-bottom))
      max(var(--portal-space-2), calc(var(--portal-space-2) + var(--portal-safe-left)));
    border-top-width: 1px;
    box-shadow: 0 -10px 28px color-mix(in srgb, var(--portal-ink) 14%, transparent);
  }

  .portal-mobile-nav[data-portal-mobile-nav-kind="customer"] {
    border-top-color: var(--portal-border);
    background: var(--portal-surface-light);
  }

  .portal-mobile-nav[data-portal-mobile-nav-kind="admin"] {
    border-top: 2px solid var(--portal-context);
    background: var(--portal-rail-surface);
  }

  .portal-mobile-nav[data-portal-mobile-nav-kind] .portal-mobile-nav-link {
    min-height: 44px;
    gap: var(--portal-space-1);
    padding: 6px 2px;
    border-color: transparent;
    color: var(--portal-muted);
  }

  .portal-mobile-nav[data-portal-mobile-nav-kind="customer"] .portal-mobile-nav-link[aria-current="page"] {
    border-color: color-mix(in srgb, var(--portal-context) 58%, var(--portal-border));
    background: color-mix(in srgb, var(--portal-context) 12%, var(--portal-surface-light));
    color: var(--portal-action);
  }

  .portal-mobile-nav[data-portal-mobile-nav-kind="customer"] .portal-mobile-nav-link[aria-current="page"] .portal-mobile-nav-icon {
    color: var(--portal-action);
  }

  .portal-mobile-nav[data-portal-mobile-nav-kind="admin"] .portal-mobile-nav-link {
    color: var(--portal-rail-muted);
  }

  .portal-mobile-nav[data-portal-mobile-nav-kind="admin"] .portal-mobile-nav-link[aria-current="page"] {
    border-color: color-mix(in srgb, var(--portal-context) 72%, transparent);
    background: color-mix(in srgb, var(--portal-context) 22%, transparent);
    color: var(--portal-rail-text);
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-mobile-nav[data-portal-mobile-nav-kind] .portal-mobile-nav-link {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* AI Studio directory controls ---------------------------------------------
   Search, family discovery and group jumps share one calm control region.
   This is presentation-only: all cards and routes still come from the
   server-published member catalogue. */
.portal-feature-directory-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, .72fr);
  grid-template-rows: auto auto;
  gap: var(--portal-space-4);
  align-items: start;
  padding: var(--portal-space-4);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-lg);
  background: var(--portal-surface-soft);
  box-shadow: var(--portal-elevation-1);
}

.portal-feature-directory-controls .portal-catalog-search {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  padding: var(--portal-space-3);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-md);
  background: var(--portal-surface-light);
}

.portal-feature-directory-controls .portal-feature-jumps {
  display: flex;
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--portal-space-2);
  align-content: start;
  overflow: visible;
  padding: var(--portal-space-3);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-md);
  background: var(--portal-surface-light);
}

.portal-feature-directory-controls .portal-feature-family-explorer {
  grid-column: 1 / -1;
  grid-row: 2;
  min-width: 0;
  box-shadow: none;
}

.portal-feature-directory-controls .portal-feature-jump[aria-controls] {
  min-height: 44px;
  flex: 0 1 auto;
}

.portal-feature-directory-results {
  display: grid;
  min-width: 0;
  gap: var(--portal-section-gap);
}

@media (max-width: 920px) {
  .portal-feature-directory-controls {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
  }

  .portal-feature-directory-controls .portal-catalog-search,
  .portal-feature-directory-controls .portal-feature-jumps,
  .portal-feature-directory-controls .portal-feature-family-explorer {
    grid-column: 1;
    grid-row: auto;
  }
}

@media (max-width: 700px) {
  .portal-feature-directory-controls {
    gap: var(--portal-space-3);
    padding: var(--portal-space-3);
  }

  .portal-feature-directory-controls .portal-feature-jumps {
    gap: var(--portal-space-2);
  }

  .portal-feature-directory-controls .portal-feature-jump[aria-controls] {
    flex: 1 1 calc(50% - var(--portal-space-2));
    justify-content: center;
    text-align: center;
  }
}

html[data-portal-theme="dark"] .portal-feature-directory-controls {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  box-shadow: var(--portal-elevation-1);
}

html[data-portal-theme="dark"] .portal-feature-directory-controls .portal-catalog-search,
html[data-portal-theme="dark"] .portal-feature-directory-controls .portal-feature-jumps {
  border-color: var(--portal-border);
  background: var(--portal-surface-light);
}

@media (prefers-reduced-motion: reduce) {
  .portal-feature-directory-controls,
  .portal-feature-directory-controls * {
    opacity: 1 !important;
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* Dashboard decision hierarchy -------------------------------------------
   The overview introduces the signed workspace. A first session gets one
   clear guided path directly below it; a returning session gets one primary
   continuation. This is presentation-only and preserves the independent
   canonical lane, its loading state and its truth boundary. */
.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-overview-actions {
  align-items: center;
}

@media (max-width: 460px) {
  .portal-workspace-command-center .portal-dashboard-overview-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Reference-first Media Studio rail ----------------------------------------
   The route-only Studio copies the useful application rhythm of the approved
   reference: orient first, progress through a connected working rail, then
   hand off to existing customer destinations. All colors are semantic Aura
   tokens so light/dark/system remain one product language. */
.portal-media-studio-shell {
  display: grid;
  gap: var(--portal-section-gap);
}

.portal-feature-studio-continuation {
  display: grid;
  min-width: 0;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: var(--portal-space-4);
  align-items: center;
  padding: var(--portal-space-4) var(--portal-space-5);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-lg);
  background: var(--portal-surface-strong);
  box-shadow: var(--portal-elevation-1);
}

.portal-feature-studio-continuation > .portal-module-icon {
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-feature-studio-continuation h2,
.portal-feature-studio-continuation p {
  margin: 0;
}

.portal-feature-studio-continuation h2 {
  color: var(--portal-ink);
  font-size: 16px;
  line-height: 1.35;
}

.portal-feature-studio-continuation p {
  max-width: 72ch;
  margin-top: var(--portal-space-1);
  color: var(--portal-muted);
  font-size: 14px;
  line-height: 1.55;
}

.portal-feature-studio-continuation .portal-button {
  justify-self: end;
  min-height: 44px;
}

.portal-media-studio-shell .portal-media-studio-intro {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: var(--portal-space-5);
  border-color: var(--portal-border);
  background: var(--portal-surface-strong);
}

.portal-media-studio-intro-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid var(--portal-border-strong);
  border-radius: var(--portal-radius-md);
  background: var(--portal-surface-light);
  color: var(--portal-context);
}

.portal-media-studio-intro h2,
.portal-media-studio-flow-heading h2,
.portal-media-studio-step h3 {
  margin: 0;
  color: var(--portal-ink);
}

.portal-media-studio-intro p,
.portal-media-studio-flow-heading > span,
.portal-media-studio-step p {
  color: var(--portal-muted);
}

.portal-media-studio-intro p {
  max-width: 74ch;
  margin: var(--portal-space-2) 0 0;
  line-height: 1.65;
}

.portal-media-studio-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--portal-space-2);
  margin-top: var(--portal-space-4);
}

.portal-media-studio-meta span,
.portal-media-studio-eyebrow,
.portal-media-studio-number {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
}

.portal-media-studio-meta span {
  padding: 6px 9px;
  border: 1px solid var(--portal-border);
  border-radius: 999px;
  background: var(--portal-surface-light);
  color: var(--portal-muted-strong);
}

.portal-media-studio-flow {
  display: grid;
  gap: var(--portal-space-4);
}

.portal-media-studio-flow-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--portal-space-4);
}

.portal-media-studio-flow-heading h2 {
  font-size: clamp(20px, 2vw, 28px);
}

.portal-media-studio-flow-heading > span {
  max-width: 56ch;
  font-size: 14px;
  line-height: 1.55;
  text-align: right;
}

.portal-media-studio-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--portal-space-3);
}

@media (min-width: 921px) {
  .portal-media-studio-grid::before,
  .portal-media-studio-grid::after {
    position: absolute;
    z-index: 0;
    display: block;
    height: 1px;
    content: "";
    background: var(--portal-border-strong);
    pointer-events: none;
  }

  .portal-media-studio-grid::before {
    top: calc(var(--portal-space-5) + 24px);
    right: calc(16.666% + var(--portal-space-3));
    left: calc(16.666% + var(--portal-space-3));
  }

  .portal-media-studio-grid::after {
    top: calc(50% + var(--portal-space-5) + 24px);
    right: calc(16.666% + var(--portal-space-3));
    left: calc(16.666% + var(--portal-space-3));
  }
}

.portal-media-studio-step {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 238px;
  gap: var(--portal-space-3);
  padding: var(--portal-space-5);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-lg);
  background: var(--portal-surface-light);
  box-shadow: var(--portal-elevation-1);
}

.portal-media-studio-step-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--portal-space-3);
}

.portal-media-studio-number,
.portal-media-studio-eyebrow {
  color: var(--portal-context);
}

.portal-media-studio-step .portal-module-icon {
  border-color: var(--portal-border);
  background: var(--portal-surface-soft);
  color: var(--portal-context);
}

.portal-media-studio-step-copy {
  display: grid;
  align-content: start;
  gap: var(--portal-space-2);
}

.portal-media-studio-step h3 {
  font-size: 18px;
  line-height: 1.25;
}

.portal-media-studio-step p {
  margin: 0;
  font-size: 14px;
  line-height: 1.58;
}

.portal-media-studio-step .portal-button {
  width: fit-content;
  margin-top: auto;
  gap: var(--portal-space-2);
}

@media (prefers-reduced-motion: no-preference) {
  @media (hover: hover) and (pointer: fine) {
    .portal-shell[data-portal-app-kind="customer"] .portal-media-studio-step {
      transition: transform var(--portal-motion-fast) var(--portal-motion-ease-standard), border-color var(--portal-motion-fast) var(--portal-motion-ease-standard), box-shadow var(--portal-motion-fast) var(--portal-motion-ease-standard);
    }

    .portal-shell[data-portal-app-kind="customer"] .portal-media-studio-step:is(:hover, :focus-within) {
      transform: translateY(-1px);
      border-color: var(--portal-border-strong);
      box-shadow: var(--portal-elevation-2);
    }
  }

  @media (hover: none), (pointer: coarse) {
    .portal-shell[data-portal-app-kind="customer"] .portal-media-studio-step:active {
      transform: scale(.985);
    }
  }
}

@media (max-width: 920px) {
  .portal-media-studio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-media-studio-grid::before,
  .portal-media-studio-grid::after { content: none; }

  .portal-feature-studio-continuation {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .portal-feature-studio-continuation .portal-button {
    grid-column: 2;
    justify-self: start;
  }
}

@media (max-width: 640px) {
  .portal-media-studio-shell .portal-media-studio-intro { grid-template-columns: 1fr; }
  .portal-media-studio-flow-heading { align-items: start; flex-direction: column; }
  .portal-media-studio-flow-heading > span { text-align: left; }
  .portal-media-studio-grid { grid-template-columns: 1fr; }
  .portal-media-studio-step { min-height: 0; }
  .portal-feature-studio-continuation { grid-template-columns: 1fr; }
  .portal-feature-studio-continuation .portal-button { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .portal-shell[data-portal-app-kind="customer"] :is(
    .portal-media-studio-shell,
    .portal-media-studio-step
  ) {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* Dashboard Focus Dock -----------------------------------------------------
   Saved Workspace Setup choices are presented as navigation only. This stays
   inside the work lane, uses the current manifest-filtered route list, and
   adds no account, integration or execution state to the Dashboard. */
.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-dock {
  display: grid;
  gap: var(--portal-space-4);
  margin-top: var(--portal-space-5);
  padding: var(--portal-space-5);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-lg);
  background: var(--portal-surface-soft);
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-dock-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: var(--portal-space-4);
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-dock h3,
.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-dock p {
  margin: 0;
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-dock h3 {
  margin-top: var(--portal-space-1);
  color: var(--portal-ink);
  font-size: clamp(18px, 1.7vw, 22px);
  line-height: 1.28;
  letter-spacing: -.02em;
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-dock p {
  max-width: 66ch;
  margin-top: var(--portal-space-2);
  color: var(--portal-muted);
  font-size: 14px;
  line-height: 1.55;
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-adjust {
  flex: 0 0 auto;
  min-height: 44px;
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--portal-space-3);
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-card {
  display: grid;
  min-width: 0;
  min-height: 144px;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  gap: var(--portal-space-3);
  align-items: start;
  padding: var(--portal-space-4);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius-md);
  background: var(--portal-surface-light);
  box-shadow: var(--portal-elevation-1);
  color: var(--portal-ink);
  text-decoration: none;
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-card > .portal-module-icon {
  width: 42px;
  height: 42px;
  border-color: var(--portal-border-strong);
  background: var(--portal-surface-strong);
  color: var(--portal-context);
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-copy {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: var(--portal-space-1);
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-copy strong {
  color: var(--portal-ink);
  font-size: 14px;
  line-height: 1.4;
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-copy > span {
  color: var(--portal-muted);
  font-size: 12px;
  line-height: 1.5;
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-open {
  display: inline-flex;
  grid-column: 1 / -1;
  gap: var(--portal-space-2);
  align-items: center;
  color: var(--portal-accent-deep);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.35;
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-open b {
  display: inline-flex;
  width: 16px;
  height: 16px;
  align-items: center;
  justify-content: center;
}

.portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-card:focus-visible {
  outline: 3px solid var(--portal-focus);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: no-preference) {
  @media (hover: hover) and (pointer: fine) {
    .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-card {
      transition: transform var(--portal-motion-fast) var(--portal-motion-ease-standard);
    }

    .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-card:is(:hover, :focus-visible) {
      transform: translateY(-1px);
    }
  }

  @media (hover: none), (pointer: coarse) {
    .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-card:active {
      transform: scale(.985);
    }
  }
}

@media (max-width: 980px) {
  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-dock-heading {
    align-items: start;
    flex-direction: column;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-card {
    min-height: 132px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-focus-card {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* Customer dashboard decision motion --------------------------------------
   The summary and canonical lane intentionally stay outside this selector.
   Motion only helps the customer scan completed, Web-owned decision layers
   after their semantic content exists in the document. */
@keyframes portal-dashboard-decision-reveal {
  from {
    opacity: 0;
    transform: translateY(var(--portal-motion-distance));
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-motion-target.is-pending {
    opacity: 0;
    transform: translateY(var(--portal-motion-distance));
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-motion-target.is-pending:focus-within {
    opacity: 1;
    transform: none;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-motion-target.is-visible {
    animation: portal-dashboard-decision-reveal var(--portal-motion-base) var(--portal-motion-ease-emphasis) both;
  }

  /* A keyboard user's destination must be readable as soon as it receives
     focus. The optional reveal describes scrolling, never delays focus. */
  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-motion-target.is-visible:focus-within {
    opacity: 1;
    transform: none;
    animation: none;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-motion-target.is-visible:focus-within .portal-dashboard-motion-item {
    opacity: 1;
    transform: none;
    animation: none;
  }

  .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-motion-target.is-visible .portal-dashboard-motion-item {
    animation: portal-dashboard-decision-reveal var(--portal-motion-base) var(--portal-motion-ease-emphasis) backwards;
    animation-delay: calc(var(--portal-dashboard-motion-index, 0) * 34ms);
  }

  @media (hover: hover) and (pointer: fine) {
    .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-app :is(
      .portal-start-guide-step,
      .portal-dashboard-draft,
      .portal-command-center-lane--account .portal-button,
      .portal-studio-card,
      .portal-dashboard-assurance > summary
    ) {
      transition: transform var(--portal-motion-fast) var(--portal-motion-ease-standard);
    }

    .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-app :is(
      .portal-start-guide-step,
      .portal-dashboard-draft,
      .portal-command-center-lane--account .portal-button,
      .portal-studio-card,
      .portal-dashboard-assurance > summary
    ):is(:hover, :focus-visible) {
      transform: translateY(-1px);
    }
  }

  @media (hover: none), (pointer: coarse) {
    .portal-shell[data-portal-app-kind="customer"] .portal-dashboard-app :is(
      .portal-start-guide-step,
      .portal-dashboard-draft,
      .portal-command-center-lane--account .portal-button,
      .portal-studio-card,
      .portal-dashboard-assurance > summary
    ):active {
      transform: scale(.985);
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .portal-shell[data-portal-app-kind="customer"] :is(
    .portal-dashboard-motion-target,
    .portal-dashboard-motion-item,
    .portal-dashboard-app .portal-start-guide-step,
    .portal-dashboard-app .portal-dashboard-draft,
    .portal-dashboard-app .portal-command-center-lane--account .portal-button,
    .portal-dashboard-app .portal-studio-card,
    .portal-dashboard-app .portal-dashboard-assurance > summary
  ) {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}
