/*
 * 3D Print Pass master theme
 * Full-bleed canvas, deliberately bounded information. Loaded after route CSS.
 * Studio and live-edit workspaces are intentionally excluded.
 */

body.pa-body:not(.pa-protected-workspace) {
  --pa-canvas: #f4fbfd;
  --pa-canvas-raised: #edf8fb;
  --pa-surface: #ffffff;
  --pa-surface-raised: #edf8fb;
  --pa-surface-soft: #e8f8fa;
  --pa-paper: #fbfdfe;
  --pa-paper-strong: #ffffff;
  --pa-copy: #263746;
  --pa-copy-muted: #617486;
  --pa-copy-dark: #122233;
  --pa-copy-dark-muted: #617486;
  --pa-accent: #087f8c;
  --pa-accent-strong: #0798a7;
  --pa-accent-soft: #dff5f8;
  --pa-line-master: rgba(8, 127, 140, 0.16);
  --pa-line-light: #d9e9ef;
  --pa-gutter: clamp(1rem, 3vw, 3rem);
  --pa-rail-form: 40rem;
  --pa-rail-reading: 50rem;
  --pa-rail-standard: 80rem;
  --pa-rail-wide: 92.5rem;
  /* Navigation and page shells share one outer rail. Reading/form rails remain narrower inside it. */
  --pa-shell-max: var(--pa-rail-wide);
  --pa-shell-wide-max: var(--pa-rail-wide);
  --pa-shell-gutter: var(--pa-gutter);
  /*
   * Site-wide geometry contract: restrained 8px corners for real surfaces.
   * Full-bleed bands remain square; avatars, status dots, and step markers
   * keep their semantic circular shape.
   */
  --pa-radius-sm: 8px;
  --pa-radius-md: 8px;
  --pa-radius-lg: 8px;
  --pa-shadow-master: 0 24px 60px rgba(16, 58, 68, 0.12);
  --pa-shadow-paper: 0 20px 48px rgba(16, 58, 68, 0.10);
}

@media (min-width: 1800px) {
  body.pa-body:not(.pa-protected-workspace) {
    --pa-rail-standard: 96rem;
    --pa-rail-wide: 112rem;
  }
}

html[data-pa-theme="light"] body.pa-body:not(.pa-protected-workspace) {
  --pa-canvas: #f4fbfd;
  --pa-canvas-raised: #edf8fb;
  --pa-surface: #ffffff;
  --pa-surface-raised: #edf8fb;
  --pa-copy: #263746;
  --pa-copy-muted: #617486;
  --pa-line-master: rgba(8, 127, 140, 0.16);
  --pa-shadow-master: 0 24px 60px rgba(16, 58, 68, 0.12);
}

body.pa-body:not(.pa-protected-workspace) {
  min-width: 0;
  background: #fbfdfe;
}

body.pa-body:not(.pa-protected-workspace)::before {
  content: none;
  display: none;
}

html[data-pa-theme="light"] body.pa-body:not(.pa-protected-workspace)::before {
  content: none;
  display: none;
}

.pa-page-scroll-accent {
  display: none;
}

html[data-pa-theme="light"] body.pa-body:not(.pa-protected-workspace) > .pa-page-scroll-accent {
  display: block;
  position: fixed;
  z-index: 1090;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  pointer-events: none;
  background: linear-gradient(90deg, #dff5f8, #0798a7, #087f8c);
  box-shadow: 0 0 16px rgba(8, 127, 140, 0.28);
  transform: scaleX(0);
  transform-origin: left center;
}

@supports (animation-timeline: scroll()) {
  html[data-pa-theme="light"] body.pa-body:not(.pa-protected-workspace) > .pa-page-scroll-accent {
    animation: pa-master-progress linear both;
    animation-timeline: scroll(root block);
  }
}

@keyframes pa-master-progress {
  to { transform: scaleX(1); }
}

body:not(.pa-protected-workspace) .pa-main {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: none;
  min-height: 62vh;
  overflow: clip;
  background: transparent;
}

body:not(.pa-protected-workspace) .pa-main::before {
  content: none;
  display: none;
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) .pa-main::before {
  content: none;
  display: none;
}

.pa-main-grid {
  display: none;
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) .pa-main > .pa-main-grid {
  display: none;
  background: none;
}

body:not(.pa-protected-workspace) .pa-rail,
body:not(.pa-protected-workspace) .pa-section {
  width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-standard));
  margin-inline: auto;
}

body:not(.pa-protected-workspace) .pa-rail--wide { max-width: var(--pa-rail-wide); }
body:not(.pa-protected-workspace) .pa-rail--standard { max-width: var(--pa-rail-standard); }
body:not(.pa-protected-workspace) .pa-rail--reading { max-width: var(--pa-rail-reading); }
body:not(.pa-protected-workspace) .pa-rail--form { max-width: var(--pa-rail-form); }

body:not(.pa-protected-workspace) .container-xxl,
body:not(.pa-protected-workspace) .pa-site-nav .container-xxl {
  width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-wide));
  max-width: var(--pa-rail-wide);
  padding-inline: 0;
}

body:not(.pa-protected-workspace) .pa-site-header {
  border-bottom: 1px solid rgba(8, 127, 140, 0.08);
  background: #fbfdfe;
  box-shadow: 0 10px 30px rgba(16, 58, 68, 0.07);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) .pa-site-header {
  border-bottom-color: rgba(11, 92, 105, 0.11);
  background: #fbfdfe;
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .pa-brand-logo {
  filter: none;
}

body:not(.pa-protected-workspace) .pa-footer {
  width: 100%;
  margin-top: clamp(3.5rem, 8vw, 7rem);
  border-top: 1px solid rgba(8, 127, 140, 0.12);
  background: #edf8fb;
}

body:not(.pa-protected-workspace) .pa-footer-inner {
  width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-wide));
  max-width: var(--pa-rail-wide);
  padding-inline: 0;
}

body:not(.pa-protected-workspace) .pa-footer-operator {
  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: 0.35rem;
  margin: 0 0 1.15rem;
  padding: 0.52rem 0.7rem;
  border: 1px solid rgba(8, 127, 140, 0.16);
  border-radius: 8px;
  background: #ffffff;
  color: #4c6475;
  font-size: 0.82rem;
  letter-spacing: 0.02em;
}

body:not(.pa-protected-workspace) .pa-footer-operator strong {
  color: var(--pa-copy-dark);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
}

body:not(.pa-protected-workspace) .pa-operator-band {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(1rem, 2.5vw, 1.7rem);
  width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-standard));
  margin: clamp(1.25rem, 3vw, 2.5rem) auto;
  padding: clamp(1.15rem, 3vw, 1.75rem);
  border: 1px solid var(--pa-line-master);
  border-radius: var(--pa-radius-md);
  background: #edf8fb;
  box-shadow: var(--pa-shadow-paper);
}

body:not(.pa-protected-workspace) .pa-operator-band-mark {
  display: grid;
  width: clamp(3rem, 6vw, 4rem);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(8, 127, 140, 0.17);
  border-radius: var(--pa-radius-md);
  background: #ffffff;
  color: var(--pa-accent);
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  box-shadow: 0 14px 30px rgba(16, 58, 68, 0.09);
}

body:not(.pa-protected-workspace) .pa-operator-band h2 {
  margin: 0.22rem 0 0.35rem;
  color: var(--pa-copy-dark);
  font-size: clamp(1.25rem, 2.2vw, 1.75rem);
}

body:not(.pa-protected-workspace) .pa-operator-band p,
body:not(.pa-protected-workspace) .pa-contact-operator {
  margin: 0;
  color: var(--pa-copy-muted);
}

body:not(.pa-protected-workspace) .pa-legal-operator {
  width: fit-content;
  margin-top: 1rem;
  padding: 0.5rem 0.72rem;
  border-left: 3px solid var(--pa-accent);
  background: #ffffff;
  color: var(--pa-copy-muted);
  font-size: 0.9rem;
}

body:not(.pa-protected-workspace) .pa-contact-operator {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.9rem;
  font-weight: 700;
}

body:not(.pa-protected-workspace) .pa-contact-operator i {
  color: var(--pa-accent);
}

body:not(.pa-protected-workspace) .pa-commerce-operator-note {
  width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-standard));
  margin: 1.25rem auto 0;
  padding: 0.9rem 1rem;
  border: 1px solid var(--pa-line-master);
  border-left: 3px solid var(--pa-accent);
  border-radius: var(--pa-radius-md);
  background: #ffffff;
  color: var(--pa-copy-muted);
  font-size: 0.9rem;
}

body:not(.pa-protected-workspace) .pa-commerce-operator-note a {
  color: var(--pa-accent);
  font-weight: 800;
}

@media (max-width: 575.98px) {
  body:not(.pa-protected-workspace) .pa-operator-band {
    grid-template-columns: 1fr;
  }
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .pa-footer h2,
html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .pa-footer .pa-footer-bottom {
  color: #102134;
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .pa-footer p,
html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .pa-footer a,
html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .pa-footer-bottom {
  color: #617486;
}

body:not(.pa-protected-workspace) h1,
body:not(.pa-protected-workspace) h2,
body:not(.pa-protected-workspace) h3 {
  text-wrap: balance;
}

body:not(.pa-protected-workspace) p,
body:not(.pa-protected-workspace) li,
body:not(.pa-protected-workspace) dd {
  text-wrap: pretty;
}

body:not(.pa-protected-workspace) :is(.pa-page-hero, .pa-theme-hero, .pa-immersive-hero) h1 {
  max-width: 13ch;
  font-size: clamp(2.8rem, 6vw, 6rem);
  line-height: 0.98;
  letter-spacing: -0.055em;
}

body:not(.pa-protected-workspace) .pa-eyebrow,
body:not(.pa-protected-workspace) .pa-blue-label,
body:not(.pa-protected-workspace) .pa-kicker {
  color: var(--pa-accent);
  font-size: 0.74rem;
  letter-spacing: 0.18em;
}

body:not(.pa-protected-workspace) .btn {
  min-height: 48px;
  border-radius: var(--pa-radius-md);
  padding: 0.78rem 1.15rem;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

body:not(.pa-protected-workspace) .btn-primary {
  border-color: #087f8c;
  background: #087a85;
  color: #ffffff;
  box-shadow: 0 16px 34px rgba(8, 127, 140, 0.22);
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) :is(.btn-primary, .pa-btn--primary, .pa-home-button--primary) {
  border-color: #066d78;
  background: #087784;
  color: #ffffff;
}

body:not(.pa-protected-workspace) .btn:hover,
body:not(.pa-protected-workspace) .btn:focus-visible {
  transform: translateY(-2px);
}

body:not(.pa-protected-workspace) .btn-primary:hover,
body:not(.pa-protected-workspace) .btn-primary:focus-visible {
  border-color: #076f79;
  background: #076d76;
  color: #ffffff;
  box-shadow: 0 20px 40px rgba(8, 127, 140, 0.28);
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) :is(.btn-primary, .pa-btn--primary, .pa-home-button--primary):is(:hover, :focus-visible) {
  border-color: #055f68;
  background: #055f68;
  color: #ffffff;
}

body:not(.pa-protected-workspace) :is(.form-control, .form-select) {
  min-height: 50px;
  border-radius: var(--pa-radius-md);
}

body:not(.pa-protected-workspace) :is(.card, .pa-white-panel, .pa-light-section, .pa-soft-section, .pa-action-panel, .pa-page-panel) {
  border-radius: var(--pa-radius-md);
}

body:not(.pa-protected-workspace) :is(.card, article, .pa-info-card, .pa-gallery-card, .pa-market-card):has(> a):hover {
  transform: translateY(-3px);
}

body:not(.pa-protected-workspace) :is(.card, article, .pa-info-card, .pa-gallery-card, .pa-market-card):has(> a) {
  transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}

/* Public and marketing routes: expansive media, disciplined sections. */
.pa-family-marketing .pa-public-page:not(.pa-home-page),
.pa-family-document .pa-public-page,
.pa-family-community .pa-public-page {
  width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-wide));
  max-width: var(--pa-rail-wide);
  margin-inline: auto;
  padding-top: clamp(1.25rem, 2.4vw, 2.25rem);
}

/* A first-child hero owns the public canvas edge. Keep the shared top inset for
   non-hero document pages, but do not render it as an empty strip above heroes. */
.pa-family-marketing .pa-public-page:not(.pa-home-page):has(> :is(.pa-page-hero, .pa-theme-hero, .pa-discover-hero, .pa-connect-hub__hero, .pa-get-it-printed__hero, .pa-contact-hero):first-child),
.pa-family-document .pa-public-page:has(> .pa-page-hero:first-child) {
  padding-top: 0;
}

.pa-family-marketing .pa-public-page:not(.pa-home-page) > section:not(.pa-page-hero):not(.pa-theme-hero):not(.pa-discover-hero):not(.pa-connect-hub__hero):not(.pa-get-it-printed__hero):not(.pa-contact-hero):not(.pa-shop-hero),
.pa-family-document .pa-public-page:not(.pa-misprint-page) > section:not(.pa-page-hero),
.pa-family-document .pa-misprint-page > section:not(.pa-page-hero):not(:first-child),
.pa-family-community .pa-public-page > section:not(.pa-page-hero) {
  width: 100%;
  margin-inline: auto;
}

.pa-family-marketing .pa-public-page:not(.pa-home-page) > .pa-page-hero,
.pa-family-document .pa-public-page > .pa-page-hero {
  width: 100vw;
  max-width: none;
  min-height: clamp(500px, 58vw, 720px);
  margin-inline: calc(50% - 50vw);
  border: 0;
  border-radius: 0;
  padding: clamp(4.5rem, 8vw, 7.5rem) max(var(--pa-gutter), calc((100vw - var(--pa-rail-standard)) / 2));
  box-shadow: none;
}

.pa-family-marketing .pa-public-page:not(.pa-home-page) > .pa-page-hero:not(.pa-immersive-hero),
.pa-family-document .pa-public-page > .pa-page-hero:not(.pa-immersive-hero) {
  background: #edf8fb;
}

.pa-family-marketing .pa-page-hero h1,
.pa-family-document .pa-page-hero h1 {
  color: #102134;
}

.pa-family-marketing .pa-page-hero p,
.pa-family-document .pa-page-hero p {
  max-width: 46rem;
  color: #617486;
}

.pa-family-marketing .pa-page-hero .pa-hero-media-frame,
.pa-family-document .pa-page-hero .pa-hero-media-frame {
  border: 1px solid rgba(8, 127, 140, 0.16);
  border-radius: var(--pa-radius-md);
  background: #ffffff;
  box-shadow: var(--pa-shadow-master);
}

.pa-family-marketing .pa-page-hero .pa-hero-media-frame img,
.pa-family-document .pa-page-hero .pa-hero-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Custom hub routes use the wide rail, not their legacy one-off caps. */
.pa-family-marketing :is(.pa-discover-hub, .pa-get-it-printed-page) {
  width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-wide));
  max-width: var(--pa-rail-wide);
  margin-inline: auto;
  padding: clamp(1.25rem, 2.8vw, 2.75rem) 0 0;
}

.pa-family-marketing .pa-discover-hub .pa-public-page {
  width: 100%;
  max-width: none;
  margin-inline: auto;
}

.pa-family-marketing :is(.pa-discover-hero, .pa-connect-hub__hero, .pa-get-it-printed__hero) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(8, 127, 140, 0.16);
  border-radius: var(--pa-radius-lg);
  background: #edf8fb;
  color: #263746;
  box-shadow: var(--pa-shadow-master);
}

.pa-family-marketing :is(.pa-discover-hero, .pa-connect-hub__hero, .pa-get-it-printed__hero) :is(h1, h2, h3) {
  color: #102134;
}

.pa-family-marketing :is(.pa-discover-hero, .pa-connect-hub__hero, .pa-get-it-printed__hero) p {
  color: #617486;
}

.pa-family-marketing .pa-discover-hero {
  min-height: clamp(480px, 52vw, 660px);
  padding: clamp(3rem, 7vw, 6rem);
}

.pa-family-marketing .pa-discover-hero > div {
  max-width: 58rem;
}

.pa-family-marketing .pa-discover-hero h1 {
  max-width: 16ch;
}

.pa-family-marketing .pa-discover-hub .pa-proof-strip span {
  border-color: rgba(8, 127, 140, 0.16);
  background: rgba(255, 255, 255, 0.82);
  color: #263746;
}

.pa-family-marketing .pa-discover-hub .btn-dark-outline {
  border-color: rgba(8, 127, 140, 0.38);
  background: rgba(232, 248, 250, 0.82);
  color: #076f79;
}

.pa-family-marketing :is(.pa-discover-grid-section, .pa-discover-proof, .pa-discover-nav),
.pa-family-marketing .pa-connect-hub__section {
  border: 1px solid var(--pa-line-light);
  border-radius: var(--pa-radius-md);
  background: rgba(248, 252, 253, 0.97);
  color: var(--pa-copy-dark);
  box-shadow: var(--pa-shadow-paper);
}

.pa-family-marketing :is(.pa-discover-grid-section, .pa-discover-proof, .pa-discover-nav, .pa-connect-hub__section) :is(h1, h2, h3, h4, strong, li, span) {
  color: var(--pa-copy-dark);
}

.pa-family-marketing :is(.pa-discover-grid-section, .pa-discover-proof, .pa-discover-nav, .pa-connect-hub__section) p {
  color: var(--pa-copy-dark-muted);
}

.pa-family-marketing .pa-discover-card,
.pa-family-marketing .pa-get-it-printed-page :is(.pa-horizontal-steps article, .pa-audit-card, .pa-action-panel, .pa-soft-section),
.pa-family-marketing .pa-connect-hub :is(.pa-connect-hub__card, .pa-connect-hub__path-link, .pa-connect-hub__prep-list li) {
  border: 1px solid var(--pa-line-light);
  border-radius: var(--pa-radius-md);
  background: #ffffff;
  color: var(--pa-copy-dark);
  box-shadow: none;
}

.pa-family-marketing .pa-get-it-printed__hero {
  min-height: clamp(460px, 48vw, 620px);
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
  align-items: center;
  padding: clamp(2.5rem, 6vw, 5.5rem);
}

.pa-family-marketing .pa-get-it-printed__hero-copy {
  max-width: 48rem;
}

.pa-family-marketing .pa-get-it-printed__hero h1 {
  max-width: 15ch;
  font-size: clamp(2.65rem, 5vw, 5.2rem);
  letter-spacing: -0.05em;
}

.pa-family-marketing .pa-get-it-printed__hero-note {
  border-color: rgba(8, 127, 140, 0.16);
  background: rgba(255, 255, 255, 0.84);
  color: #263746;
}

.pa-family-marketing .pa-connect-hub {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  gap: clamp(1.5rem, 3vw, 2.5rem);
}

.pa-family-marketing .pa-connect-hub__hero {
  min-height: clamp(500px, 52vw, 680px);
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.65fr);
  align-items: center;
  padding: clamp(2.75rem, 6vw, 5.5rem);
}

.pa-family-marketing .pa-connect-hub__hero-copy { max-width: 50rem; }
.pa-family-marketing .pa-connect-hub__hero h1 {
  max-width: 14ch;
  font-size: clamp(2.7rem, 5vw, 5.3rem);
  line-height: 0.99;
  letter-spacing: -0.05em;
}

.pa-family-marketing .pa-connect-hub__signal {
  border-color: rgba(8, 127, 140, 0.16);
  background: rgba(255, 255, 255, 0.84);
}

.pa-family-marketing .pa-connect-hub__signal :is(h2, li) { color: #122233; }
.pa-family-marketing .pa-connect-hub .pa-btn {
  min-height: 48px;
  border-radius: var(--pa-radius-md);
  padding: 0.78rem 1.15rem;
  font-weight: 850;
}
.pa-family-marketing .pa-connect-hub .pa-btn--primary {
  border-color: #066d78;
  background: #087784;
  color: #ffffff;
}
.pa-family-marketing .pa-connect-hub .pa-btn--ghost {
  border-color: rgba(8, 127, 140, 0.34);
  background: rgba(232, 248, 250, 0.86);
  color: #076f79;
}

/* Reading pages: allow the atmosphere to bleed, never the prose. */
.pa-family-document .pa-doc-layout {
  width: min(100%, 72rem);
  max-width: 72rem;
  grid-template-columns: minmax(210px, 250px) minmax(0, var(--pa-rail-reading));
  justify-content: center;
  gap: clamp(1.5rem, 4vw, 3.5rem);
}

.pa-family-document .pa-doc-content,
.pa-family-document .pa-doc-layout > article,
.pa-family-document .pa-doc-layout > main {
  width: 100%;
  max-width: var(--pa-rail-reading);
}

.pa-family-document .pa-doc-content :is(p, li),
.pa-family-document .pa-doc-section :is(p, li) {
  max-width: 76ch;
}

.pa-family-document :is(.pa-doc-content, .pa-doc-section, .pa-toc-card, .pa-light-section, .pa-soft-section, .pa-info-card) {
  border-color: var(--pa-line-light);
}

/* Product workflows and evidence surfaces. */
.pa-family-workflow .pa-main,
.pa-family-community .pa-main,
.pa-family-account .pa-main,
.pa-family-admin .pa-main {
  padding-block: clamp(1.25rem, 2.8vw, 2.75rem);
}

.pa-family-workflow .pa-main > :not(script):not(style) {
  width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-wide));
  max-width: var(--pa-rail-wide);
  margin-inline: auto;
}

/* Admin main already owns the navigation rail. Keep direct page sections on
   that rail without overriding form caps or Bootstrap row gutters. */
.pa-family-admin .pa-main > :not(script):not(style):not(.pa-main-grid):not(.row) {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
}

.pa-family-workflow :is(.pa-customer-dashboard, .pa-projects-shell, .pa-upload-shell, .pa-status-shell, .pa-shared-report-page, .pa-report-card-page, .pa-source-tool, .pa-doctor-page),
.pa-family-community :is(.pa-public-page, .pa-community-page),
.pa-family-admin :is(.pa-admin-reference, .container, .container-xxl) {
  width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-wide));
  max-width: var(--pa-rail-wide);
  margin-inline: auto;
}

.pa-family-workflow :is(.pa-upload-shell, .pa-status-shell, .pa-source-tool, .pa-doctor-page) {
  max-width: var(--pa-rail-standard);
}

.pa-family-workflow :is(.pa-dashboard-head, .pa-projects-head, .pa-upload-head, .pa-status-head),
.pa-family-account .pa-account-page-head,
.pa-family-admin :is(.pa-admin-list-hero, .pa-admin-hero, .pa-admin-page-head) {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--pa-line-master);
  border-radius: var(--pa-radius-md);
  background: #edf8fb;
  box-shadow: 0 20px 48px rgba(16, 58, 68, 0.10);
}

.pa-family-workflow :is(.pa-dashboard-head, .pa-projects-head, .pa-upload-head, .pa-status-head) :is(h1, h2, h3),
.pa-family-account .pa-account-page-head :is(h1, h2, h3),
.pa-family-admin :is(.pa-admin-list-hero, .pa-admin-hero, .pa-admin-page-head) :is(h1, h2, h3) {
  color: #102134;
}

.pa-family-workflow :is(.pa-dashboard-head, .pa-projects-head, .pa-upload-head, .pa-status-head) p,
.pa-family-account .pa-account-page-head p,
.pa-family-admin :is(.pa-admin-list-hero, .pa-admin-hero, .pa-admin-page-head) p {
  color: #617486;
}

.pa-family-workflow :is(.pa-dashboard-kpi, .pa-dashboard-panel, .pa-dashboard-support, .pa-project-card, .pa-projects-create, .pa-projects-list, .pa-upload-card, .pa-status-card, .pa-source-workspace, .pa-source-result-board),
.pa-family-community :is(.pa-community-card, .pa-community-panel, .pa-community-thread, .pa-community-question),
.pa-family-account :is(.pa-account-card, .pa-manage-shell),
.pa-family-admin :is(.pa-admin-reference-body, .pa-admin-panel, .pa-admin-table-shell, .card) {
  border-color: var(--pa-line-master);
  border-radius: var(--pa-radius-md);
  background: rgba(255, 255, 255, 0.88);
  color: #263746;
  box-shadow: 0 20px 48px rgba(16, 58, 68, 0.10);
}

.pa-family-workflow .pa-dashboard-kpis {
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.pa-family-workflow .pa-dashboard-grid {
  align-items: start;
}

.pa-family-workflow .pa-projects-shell {
  display: grid;
  gap: clamp(1.25rem, 2.6vw, 2.25rem);
}

.pa-family-workflow .pa-project-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
}

.pa-family-workflow :is(.pa-project-form, .pa-upload-form, .pa-source-input) {
  max-width: 56rem;
}

.pa-family-workflow .pa-source-workspace {
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
}

/* Tool panels remain readable within the restored light ice surfaces. */
.pa-family-workflow .pa-doctor-page :is(.pa-doctor-quick-card, .pa-doctor-guide-panel) {
  border-color: rgba(8, 127, 140, 0.16);
  background: rgba(255, 255, 255, 0.88);
  color: #263746;
}

.pa-family-workflow .pa-doctor-page :is(.pa-doctor-quick-card, .pa-doctor-guide-panel) :is(h2, h3, b, strong) {
  color: #102134;
}

.pa-family-workflow .pa-doctor-page :is(.pa-doctor-quick-card, .pa-doctor-guide-panel) :is(p, li, span, small) {
  color: #617486;
}

.pa-family-workflow .pa-doctor-page .pa-doctor-quick-card .pa-doctor-card-action,
.pa-family-workflow .pa-doctor-page .pa-doctor-guide-panel i {
  color: #087f8c;
}

.pa-family-workflow .pa-source-result-board {
  background: rgba(255, 255, 255, 0.88);
}

.pa-family-workflow .pa-source-result-board > :is(h2, h3, p),
.pa-family-workflow .pa-source-result-board .pa-source-status :is(h2, h3) {
  color: #102134;
}

.pa-family-workflow .pa-source-result-board > p {
  color: #617486;
}

/* Community stays generous for evidence, while conversations remain readable. */
.pa-family-community .pa-main { overflow: clip; }
.pa-family-community .pa-public-page { padding-top: 0; }
.pa-family-community :is(.pa-community-copy, .pa-community-question-body, .pa-answer-body) {
  max-width: 76ch;
}
.pa-family-community :is(.pa-community-feed, .pa-community-layout) {
  width: 100%;
  max-width: 86rem;
  margin-inline: auto;
}

/* Authentication: one premium frame, one obvious action. */
.pa-family-auth .pa-main {
  display: grid;
  align-items: start;
  min-height: calc(100vh - 78px);
  padding: clamp(1.5rem, 4vw, 3.75rem) var(--pa-gutter);
}

.pa-family-auth .pa-auth-page {
  width: 100%;
  max-width: 77.5rem;
  margin: 0 auto;
  padding: 0;
}

.pa-family-auth .pa-auth-frame {
  width: 100%;
  min-height: min(720px, calc(100vh - 150px));
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
  overflow: hidden;
  border: 1px solid rgba(8, 127, 140, 0.16);
  border-radius: var(--pa-radius-lg);
  background: #ffffff;
  box-shadow: var(--pa-shadow-master);
}

.pa-family-auth .pa-auth-story {
  position: relative;
  isolation: isolate;
  min-height: 100%;
  background: #edf8fb;
  padding: clamp(2.4rem, 5vw, 4.4rem);
}

.pa-family-auth .pa-auth-story > div {
  position: relative;
  z-index: 2;
  max-width: 34rem;
}

.pa-family-auth .pa-auth-story h1 {
  max-width: 11ch;
  font-size: clamp(2.4rem, 4.2vw, 4.7rem);
  line-height: 1;
  letter-spacing: -0.05em;
}

.pa-family-auth .pa-auth-story > img {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 42%;
  object-fit: cover;
  object-position: center 42%;
  opacity: 0.88;
  filter: saturate(0.72) contrast(1.05);
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 28%);
  mask-image: linear-gradient(180deg, transparent, #000 28%);
}

.pa-family-auth .pa-auth-feature-list {
  max-width: 31rem;
  margin-bottom: 12rem;
}

.pa-family-auth .pa-auth-feature-list article {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.pa-family-auth .pa-auth-form-panel {
  display: grid;
  align-items: center;
  background: #fbfdfe;
  padding: clamp(2rem, 4vw, 4rem);
}

.pa-family-auth .pa-auth-form {
  width: 100%;
  max-width: 30rem;
  margin-inline: auto;
}

.pa-family-auth .pa-auth-form h2 {
  margin-bottom: 0.45rem;
  font-size: clamp(1.75rem, 2.5vw, 2.5rem);
}

.pa-family-auth .pa-auth-form form { margin-top: 1.75rem; }
.pa-family-auth .pa-auth-form .pa-field + .pa-field { margin-top: 1rem; }
.pa-family-auth .pa-auth-policy { max-width: 55ch; }
.pa-family-auth .pa-auth-switch { margin-top: 1.35rem; }

.pa-family-auth :is(.pa-message-shell, .pa-auth-shell) {
  width: min(100%, var(--pa-rail-form));
  max-width: var(--pa-rail-form);
  margin-inline: auto;
  border: 1px solid var(--pa-line-master);
  border-radius: var(--pa-radius-lg);
  background: rgba(255, 255, 255, 0.90);
  box-shadow: var(--pa-shadow-master);
}

/* Account settings are a calm, bounded product workspace. */
.pa-family-account .pa-account-workspace,
.pa-family-account .pa-manage-shell {
  width: min(calc(100% - var(--pa-gutter)), 78rem);
  max-width: 78rem;
  margin-inline: auto;
}

.pa-family-account .pa-account-workspace {
  grid-template-columns: 15rem minmax(0, 1fr);
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--pa-line-master);
  border-radius: var(--pa-radius-lg);
  background: rgba(255, 255, 255, 0.90);
  box-shadow: var(--pa-shadow-master);
}

.pa-family-account .pa-account-sidebar {
  border-right: 1px solid var(--pa-line-master);
  border-radius: 0;
  box-shadow: none;
}

.pa-family-account .pa-account-content {
  min-width: 0;
  max-width: var(--pa-rail-reading);
  padding: clamp(1.5rem, 4vw, 3rem);
}

.pa-family-account :is(.pa-account-danger, .pa-danger-zone) {
  border: 1px solid rgba(255, 116, 102, 0.28);
  background: rgba(255, 116, 102, 0.07);
}

/* Admin shares the brand language without marketing spectacle. */
.pa-family-admin .pa-main {
  font-size: 0.94rem;
}

.pa-family-admin .pa-admin-reference {
  display: grid;
  gap: 1rem;
}

.pa-family-admin :is(.table-responsive, .pa-admin-table-wrap) {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--pa-line-master);
  border-radius: var(--pa-radius-md);
}

.pa-family-admin .table { margin-bottom: 0; }
.pa-family-admin :is(.form-control, .form-select, .btn) { min-height: 42px; }

/* Status and error pages should still feel intentional. */
.pa-family-message .pa-main {
  display: grid;
  place-items: center;
  min-height: 70vh;
  padding: clamp(2rem, 6vw, 5rem) var(--pa-gutter);
}

.pa-family-message .pa-message-shell {
  width: min(100%, 54rem);
  margin: 0;
  border: 1px solid var(--pa-line-master);
  border-radius: var(--pa-radius-lg);
  background: rgba(255, 255, 255, 0.90);
  box-shadow: var(--pa-shadow-master);
}

/* Light islands remain readable even when the selected site theme is dark. */
html[data-pa-theme="dark"] body:not(.pa-protected-workspace) :is(
  .pa-light-section, .pa-soft-section, .pa-white-panel, .pa-audit-card,
  .pa-discover-grid-section, .pa-discover-card, .pa-discover-proof, .pa-discover-nav,
  .pa-connect-hub__section, .pa-connect-hub__card, .pa-connect-hub__path-link, .pa-connect-hub__prep-list li
) {
  color: var(--pa-copy-dark);
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) :is(
  .pa-light-section, .pa-soft-section, .pa-white-panel, .pa-audit-card,
  .pa-discover-grid-section, .pa-discover-card, .pa-discover-proof, .pa-discover-nav,
  .pa-connect-hub__section, .pa-connect-hub__card, .pa-connect-hub__path-link, .pa-connect-hub__prep-list li
) :is(h1, h2, h3, h4, strong, label, li, span) {
  color: var(--pa-copy-dark);
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) :is(
  .pa-light-section, .pa-soft-section, .pa-white-panel, .pa-audit-card,
  .pa-discover-grid-section, .pa-discover-card, .pa-discover-proof, .pa-discover-nav,
  .pa-connect-hub__section, .pa-connect-hub__card, .pa-connect-hub__path-link, .pa-connect-hub__prep-list li
) p {
  color: var(--pa-copy-dark-muted);
}

/* The ecosystem header keeps the original ice palette; protected workspaces keep their own chrome. */
html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .ecosystem-nav {
  --ecosystem-nav-ink: #102134;
  --ecosystem-nav-muted: #617486;
  --ecosystem-nav-line: rgba(8, 127, 140, 0.14);
  --ecosystem-nav-surface: #ffffff;
  --ecosystem-nav-soft: #eef8fb;
  --ecosystem-nav-teal: #087f8c;
  --ecosystem-nav-deep: #076f79;
  --ecosystem-nav-accent: #0798a7;
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .ecosystem-nav .pa-site-nav {
  border-bottom-color: rgba(8, 127, 140, 0.08);
  background: #fbfdfe;
  color: var(--ecosystem-nav-ink);
  box-shadow: 0 10px 30px rgba(16, 58, 68, 0.07);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .ecosystem-nav .pa-brand-logo {
  filter: none !important;
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .ecosystem-nav :is(.nav-link, .pa-nav-link, .pa-nav-account, .pa-nav-theme-toggle) {
  color: var(--ecosystem-nav-ink);
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .ecosystem-nav :is(.nav-link, .pa-nav-link):hover,
html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .ecosystem-nav :is(.nav-link, .pa-nav-link):focus-visible {
  color: #087f8c;
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .ecosystem-nav :is(.dropdown-menu, .pa-nav-menu, .pa-nav-account-menu) {
  border-color: rgba(8, 127, 140, 0.16);
  background: #ffffff;
  color: #102134;
  box-shadow: 0 24px 54px rgba(16, 58, 68, 0.14);
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .ecosystem-nav :is(.dropdown-item, .pa-nav-menu a, .pa-nav-account-menu a) {
  color: #263746;
}

html[data-pa-theme="dark"] body:not(.pa-protected-workspace) .ecosystem-nav :is(.dropdown-item, .pa-nav-menu a, .pa-nav-account-menu a):hover {
  background: rgba(232, 248, 250, 0.92);
  color: #076f79;
}

/* A light-theme route remains calm and paper-like without losing the brand geometry. */
html[data-pa-theme="light"] body:not(.pa-protected-workspace) .ecosystem-nav .pa-site-nav {
  border-bottom-color: rgba(11, 92, 105, 0.11);
  background: #fbfdfe;
  box-shadow: 0 10px 30px rgba(16, 58, 68, 0.07);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Responsive systems: imagery may expand; reading and interaction never lose their rails. */
@media (max-width: 1100px) {
  .pa-family-marketing :is(.pa-get-it-printed__hero, .pa-connect-hub__hero),
  .pa-family-workflow .pa-source-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  .pa-family-marketing :is(.pa-get-it-printed__hero, .pa-connect-hub__hero) {
    min-height: auto;
  }

  .pa-family-document .pa-doc-layout {
    grid-template-columns: minmax(190px, 220px) minmax(0, 1fr);
  }
}

@media (max-width: 991.98px) {
  body.pa-body:not(.pa-protected-workspace) {
    --pa-gutter: clamp(1rem, 5vw, 2rem);
  }

  .pa-family-auth .pa-auth-frame {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }

  .pa-family-auth .pa-auth-story {
    min-height: 22rem;
    padding: clamp(2rem, 7vw, 3.5rem);
  }

  .pa-family-auth .pa-auth-story h1 {
    max-width: 14ch;
    font-size: clamp(2.45rem, 8vw, 4.4rem);
  }

  .pa-family-auth .pa-auth-feature-list {
    max-width: 35rem;
    margin-bottom: 6rem;
  }

  .pa-family-auth .pa-auth-story > img {
    right: 0;
    left: auto;
    width: min(54%, 34rem);
    height: 100%;
    opacity: 0.44;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 34%);
    mask-image: linear-gradient(90deg, transparent, #000 34%);
  }

  .pa-family-auth .pa-auth-form-panel {
    padding: clamp(2rem, 7vw, 3.5rem);
  }

  .pa-family-account .pa-account-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  .pa-family-account .pa-account-sidebar {
    border-right: 0;
    border-bottom: 1px solid var(--pa-line-master);
  }

  .pa-family-account .pa-account-sidebar :is(nav, .nav, ul) {
    display: flex;
    max-width: 100%;
    overflow-x: auto;
    gap: 0.35rem;
  }

  .pa-family-document .pa-doc-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .pa-family-document :is(.pa-doc-sidebar, .pa-toc) {
    position: static;
  }
}

@media (max-width: 767.98px) {
  body:not(.pa-protected-workspace) :is(.pa-page-hero, .pa-theme-hero, .pa-immersive-hero) h1 {
    max-width: 16ch;
    font-size: clamp(2.4rem, 12vw, 4rem);
    line-height: 1;
  }

  .pa-family-marketing .pa-public-page:not(.pa-home-page),
  .pa-family-document .pa-public-page,
  .pa-family-community .pa-public-page {
    width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-wide));
    padding-top: 0;
    padding-inline: 0;
  }

  .pa-family-marketing .pa-public-page:not(.pa-home-page) > .pa-page-hero,
  .pa-family-document .pa-public-page > .pa-page-hero {
    min-height: 31rem;
    padding: 4rem 1rem;
  }

  .pa-family-marketing :is(.pa-discover-hub, .pa-get-it-printed-page) {
    width: min(calc(100% - var(--pa-gutter)), var(--pa-rail-wide));
    padding-top: 1rem;
  }

  .pa-family-marketing :is(.pa-discover-hero, .pa-connect-hub__hero, .pa-get-it-printed__hero) {
    border-radius: var(--pa-radius-md);
    padding: 2rem 1.25rem;
  }

  .pa-family-marketing .pa-discover-hero {
    min-height: 31rem;
  }

  .pa-family-marketing :is(.pa-connect-hub__hero h1, .pa-get-it-printed__hero h1) {
    font-size: clamp(2.35rem, 12vw, 3.8rem);
  }

  .pa-family-workflow .pa-main,
  .pa-family-community .pa-main,
  .pa-family-account .pa-main,
  .pa-family-admin .pa-main {
    padding-block: 1rem;
  }

  .pa-family-workflow :is(.pa-customer-dashboard, .pa-projects-shell, .pa-upload-shell, .pa-status-shell, .pa-shared-report-page, .pa-report-card-page, .pa-source-tool, .pa-doctor-page),
  .pa-family-community :is(.pa-public-page, .pa-community-page),
  .pa-family-account :is(.pa-account-workspace, .pa-manage-shell),
  .pa-family-admin :is(.pa-admin-reference, .container, .container-xxl) {
    width: calc(100% - 2rem);
  }

  .pa-family-auth .pa-main {
    min-height: 0;
    padding: 1rem;
  }

  .pa-family-auth .pa-auth-frame {
    border-radius: var(--pa-radius-md);
  }

  .pa-family-auth .pa-auth-story {
    min-height: 14rem;
    padding: 1.75rem 1.35rem;
  }

  .pa-family-auth .pa-auth-story > div {
    max-width: 26rem;
  }

  .pa-family-auth .pa-auth-story h1 {
    max-width: 12ch;
    font-size: clamp(2.2rem, 11vw, 3.25rem);
  }

  .pa-family-auth .pa-auth-story > div > p,
  .pa-family-auth .pa-auth-feature-list {
    display: none;
  }

  .pa-family-auth .pa-auth-story > img {
    width: 58%;
    height: 100%;
    object-position: center;
  }

  .pa-family-auth .pa-auth-form-panel {
    padding: 1.75rem 1.25rem 2rem;
  }

  .pa-family-account .pa-account-content {
    padding: 1.35rem 1rem 2rem;
  }

  .pa-family-admin :is(.table-responsive, .pa-admin-table-wrap) {
    margin-inline: -0.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-pa-theme="light"] body.pa-body:not(.pa-protected-workspace) > .pa-page-scroll-accent {
    display: block;
    animation: none;
    transform: scaleX(1);
    opacity: 0.28;
  }

  body:not(.pa-protected-workspace) *,
  body:not(.pa-protected-workspace) *::before,
  body:not(.pa-protected-workspace) *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  body:not(.pa-protected-workspace) :is(.btn, .card, article, .pa-info-card, .pa-gallery-card, .pa-market-card):hover,
  body:not(.pa-protected-workspace) :is(.btn, .card, article, .pa-info-card, .pa-gallery-card, .pa-market-card):focus-visible {
    transform: none;
  }
}

/* Final nested-surface guard: tool copy remains legible on the restored light panels. */
html[data-pa-theme="dark"] body.pa-family-workflow .pa-doctor-page .pa-doctor-quick-card > :is(strong, b),
html[data-pa-theme="dark"] body.pa-family-workflow .pa-doctor-page .pa-doctor-guide-panel :is(h2, h3, b, strong) {
  color: #102134;
}

html[data-pa-theme="dark"] body.pa-family-workflow .pa-doctor-page .pa-doctor-quick-card > :is(span, small),
html[data-pa-theme="dark"] body.pa-family-workflow .pa-doctor-page .pa-doctor-guide-panel :is(p, li, span, small) {
  color: #617486;
}

html[data-pa-theme="dark"] body.pa-family-workflow .pa-doctor-page .pa-doctor-quick-card .pa-doctor-card-action,
html[data-pa-theme="dark"] body.pa-family-workflow .pa-doctor-page .pa-doctor-guide-panel i {
  color: #087f8c;
}

html[data-pa-theme="dark"] body.pa-family-workflow .pa-source-result-board > :is(h2, h3),
html[data-pa-theme="dark"] body.pa-family-workflow .pa-source-result-board .pa-source-status :is(h2, h3) {
  color: #102134 !important;
}

html[data-pa-theme="dark"] body.pa-family-workflow .pa-source-result-board > p {
  color: #617486 !important;
}

/* Light accessibility authority: the shared shell uses opaque ice surfaces and
   AA-safe text roles. Keep this after route-family rules so active-link and
   Bootstrap utility colors cannot restore the near-threshold legacy values. */
html[data-pa-theme="light"] body:not(.pa-protected-workspace) :is(
  .ecosystem-nav .pa-site-nav,
  .pa-site-header
) {
  background: #fbfdfe !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) .pa-footer,
html[data-pa-theme="light"] body:not(.pa-protected-workspace) .pa-operator-band {
  background: #edf8fb !important;
  background-image: none !important;
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) .pa-footer :is(
  p,
  a,
  summary,
  .pa-footer-bottom
) {
  color: #5b6f81 !important;
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) .pa-footer a[aria-current="page"] {
  color: #066d78 !important;
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) .pa-operator-band p {
  color: #5b6f81 !important;
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) .pa-operator-band .pa-eyebrow {
  color: #066d78 !important;
}

/* The mobile menu mark is three decorative bars rather than a Unicode text
   glyph. Screen readers already receive the button's accessible name, while
   Axe no longer has to infer text contrast for a decorative character. */
.pa-nav-toggle .navbar-toggler-icon {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  gap: 0.24rem;
  background-image: none !important;
  filter: none !important;
  font-size: 0;
  line-height: 0;
}

.pa-nav-toggle .pa-nav-toggle-bar {
  width: 1.28rem;
  height: 2px;
  flex: 0 0 2px;
  border-radius: 8px;
  background: currentColor;
}

html[data-pa-theme="light"] body:not(.pa-protected-workspace) .navbar-toggler-icon {
  color: #122233 !important;
  background: #fbfdfe !important;
  background-image: none !important;
}
