/* Synapse Build 2.4 Surface System Re-admission
   buildId: synapse-build2-4-surface-css-readmission-v1
   Purpose: restore safe design-system rules without loading the old platform bundle,
   production aggregate, boot veil, cover, state-light runtime, transition,
   display-fabric, substrate, diagnostics, or runtime authority CSS.

   This file is an explicit, bounded aggregate. It inlines selected safe donor
   design sources so the current public product can recover the established
   typography, button, panel, spacing, and diagram surface language while the
   old platform authority remains sealed.
*/

/* ---- admitted safe source: shared/styles/core/reset.css ---- */
/* Root reset
   Neutral foundation for systems, shell, viewport, apps, and bridge. */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  min-height: 100%;
}

html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
  overflow-x: clip;
}

body {
  margin: 0;
  overflow-x: clip;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

@supports not (overflow: clip) {
  html,
  body {
    overflow-x: hidden;
  }
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
}

iframe {
  max-inline-size: 100%;
  border: 0;
}

button,
input,
textarea,
select {
  font: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}

::selection {
  background: rgba(134, 163, 230, 0.26);
  color: var(--copy-strong, #eef4ff);
}

* {
  scrollbar-width: thin;
  scrollbar-color: rgba(148, 175, 236, 0.22) rgba(255, 255, 255, 0.03);
}

*::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

*::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.022);
}

*::-webkit-scrollbar-thumb {
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
  background: linear-gradient(180deg, rgba(148, 175, 236, 0.22), rgba(98, 124, 180, 0.18));
}

[hidden] {
  display: none !important;
}

/* ---- admitted safe source: shared/styles/core/platform-color.css ---- */
:root {
  color-scheme: light;

  --color-ink-950: #0d1a2a;
  --color-ink-900: #132947;
  --color-ink-850: #183457;
  --color-ink-800: #21456f;

  --color-teal-700: #0f5f67;
  --color-teal-600: #16717a;
  --color-teal-500: #218792;
  --color-teal-400: #57aab2;

  --color-brass-700: #8d6820;
  --color-brass-600: #a57a28;
  --color-brass-500: #bc9339;
  --color-brass-400: #d2ac57;

  --color-meta-accent: color-mix(in srgb, var(--color-brass-700) 62%, var(--color-ink-900) 38%);
  --color-meta-accent-soft: color-mix(in srgb, var(--color-brass-700) 50%, var(--color-text-muted) 50%);
  --shell-engraved-shadow:
    0 1px 0 rgba(255, 255, 255, 0.42),
    0 -1px 0 rgba(17, 37, 61, 0.06);

  --color-paper-100: #fffdfa;
  --color-paper-150: #fbf7f0;
  --color-paper-200: #f6efe5;
  --color-mist-150: #edf4f3;
  --color-mist-200: #e5eef1;
  --color-stone-150: #f1ece5;

  --color-title: #11253d;
  --color-text: #23384f;
  --color-text-muted: #50657a;
  --color-text-soft: #6c8094;
  --color-text-inverse: #f8fbfd;
  --color-link-hover: var(--color-teal-700);

  --color-success: #2f6f55;
  --color-warning: #9a6d1f;
  --color-danger: #8d433a;
  --color-info: #215f86;

  --copy-main: var(--color-text);
  --copy-soft: var(--color-text-soft);
  --copy-faint: color-mix(in srgb, var(--color-text-soft) 78%, white 22%);
  --copy-strong: var(--color-title);

  --color-surface-muted:
    linear-gradient(180deg, rgba(237, 244, 243, 0.92), rgba(255, 253, 250, 0.92));
  --color-surface-strong: var(--color-ink-900);
  --color-surface-elevated: rgba(255, 253, 250, 0.96);
  --color-surface-panel: rgba(255, 251, 246, 0.9);

  --border-thin: 1px solid rgba(17, 37, 61, 0.08);
  --control-border: rgba(17, 37, 61, 0.12);

  --shadow-sm: 0 0.22rem 0.7rem rgba(17, 37, 61, 0.035);
  --shadow-md: 0 0.42rem 1.1rem rgba(17, 37, 61, 0.055);
  --shadow-lg: 0 1rem 2.2rem rgba(17, 37, 61, 0.12);

  --guide-bg: rgba(255, 253, 250, 0.95);
  --guide-panel: rgba(255, 251, 246, 0.92);
  --guide-panel-strong: rgba(237, 244, 243, 0.84);
  --guide-border: rgba(17, 37, 61, 0.12);
  --guide-text: var(--color-title);
  --guide-text-muted: var(--color-text-soft);
  --guide-accent: rgba(33, 95, 134, 0.12);
  --guide-good: var(--color-success);
  --guide-warn: var(--color-warning);
  --guide-bad: var(--color-danger);
  --guide-shadow: 0 0.55rem 1.3rem rgba(17, 37, 61, 0.08);

  --shell-tone-workspace-border: rgba(47, 111, 85, 0.24);
  --shell-tone-workspace-ring: rgba(47, 111, 85, 0.12);
  --shell-tone-engine-border: rgba(33, 95, 134, 0.24);
  --shell-tone-engine-ring: rgba(33, 95, 134, 0.12);


  /* Synapse color authority system
     Palette stays intact; these tokens define each color's job. */
  --syn-identity: var(--color-ink-900);
  --syn-identity-deep: var(--color-ink-950);
  --syn-identity-soft: rgba(19, 41, 71, 0.12);

  --syn-action: var(--color-teal-600);
  --syn-action-strong: var(--color-teal-700);
  --syn-action-hover: var(--color-teal-500);
  --syn-action-soft: rgba(33, 135, 146, 0.14);
  --syn-action-line: rgba(33, 135, 146, 0.26);

  --syn-casing: color-mix(in srgb, var(--color-brass-600) 42%, rgba(19, 41, 71, 0.08));
  --syn-casing-strong: color-mix(in srgb, var(--color-brass-600) 54%, rgba(19, 41, 71, 0.1));
  --syn-casing-soft: color-mix(in srgb, var(--color-brass-600) 28%, rgba(19, 41, 71, 0.06));
  --syn-bridge: color-mix(in srgb, var(--color-brass-600) 58%, var(--color-teal-600) 42%);
  --syn-bridge-soft: color-mix(in srgb, var(--syn-bridge) 36%, transparent);

  --syn-glass: var(--color-mist-200);
  --syn-glass-soft: var(--color-mist-150);
  --syn-glass-line: color-mix(in srgb, var(--color-mist-200) 58%, var(--color-ink-800) 42%);

  --syn-surface: var(--color-paper-100);
  --syn-surface-warm: var(--color-paper-150);
  --syn-surface-muted: var(--color-paper-200);

  --syn-support: var(--color-text-muted);
  --syn-support-soft: var(--color-text-soft);

}

/* ---- admitted safe source: shared/styles/core/platform-type.css ---- */
500;600;700;800&display=swap");

:root {
  --font-heading: "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-ui: var(--font-body);
  --font-identity: "Archivo", "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-identity-stretch: 82%;
  --font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;

  --font-size-2xs: 0.74rem;
  --font-size-xs: 0.82rem;
  --font-size-sm: 0.95rem;
  --font-size-md: 1rem;
  --font-size-lg: 1.12rem;
  --font-size-xl: 1.28rem;
  --font-size-2xl: 1.62rem;
  --font-size-3xl: clamp(1.95rem, 1.5rem + 1.2vw, 2.7rem);

  --line-height-tight: 1.08;
  --line-height-title: 1.12;
  --line-height-body: 1.62;
  --line-height-meta: 1.4;

  --letter-spacing-tight: -0.022em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.12em;

  --font-weight-regular: 400;
  --font-weight-medium: 520;
  --font-weight-semibold: 620;
  --font-weight-bold: 720;
  --font-weight-heavy: 760;
}

/* ---- admitted safe source: shared/styles/core/platform-motion.css ---- */
:root {
  --transition-fast: 180ms ease;
  --transition-mid: 240ms ease;
  --transition-slow: 320ms ease;
}

/* ---- admitted safe source: shared/styles/core/mode-colors.css ---- */
:root {
  --shell-mode-accent: var(--syn-action-soft, rgba(33, 135, 146, 0.14));
  --viewport-window-bg:
    linear-gradient(180deg, rgba(255, 253, 250, 0.96), rgba(237, 244, 243, 0.94));
  --support-window-bg:
    linear-gradient(180deg, rgba(255, 253, 250, 0.98), rgba(241, 236, 229, 0.94));
}

body.shell-body {
  background:
    radial-gradient(circle at top right, var(--syn-action-soft, rgba(33, 135, 146, 0.14)), transparent 32%),
    radial-gradient(circle at bottom left, var(--syn-casing-soft, rgba(188, 147, 57, 0.08)), transparent 28%),
    linear-gradient(180deg, var(--color-paper-100), var(--color-paper-150));
}

body[data-shell-mode="clinic"] {
  --shell-mode-accent: var(--syn-action-soft, rgba(33, 135, 146, 0.14));
  --viewport-window-bg:
    linear-gradient(180deg, rgba(255, 253, 250, 0.96), rgba(237, 244, 243, 0.94));
}

body[data-shell-mode="portal"] {
  --shell-mode-accent: var(--syn-identity-soft, rgba(19, 41, 71, 0.16));
  --viewport-window-bg:
    linear-gradient(180deg, rgba(251, 247, 240, 0.98), rgba(229, 238, 241, 0.95));
  --support-window-bg:
    linear-gradient(180deg, rgba(248, 251, 253, 0.98), rgba(229, 238, 241, 0.96));
}

body[data-shell-mode="workspace"] {
  --shell-mode-accent: color-mix(in srgb, var(--syn-action, #16717a) 62%, transparent);
  --viewport-window-bg:
    linear-gradient(180deg, rgba(247, 250, 252, 0.97), rgba(229, 238, 241, 0.95));
  --support-window-bg:
    linear-gradient(180deg, rgba(247, 250, 252, 0.98), rgba(241, 236, 229, 0.94));
}

/* ---- admitted safe source: shared/styles/core/tokens.css ---- */
:root {
  --container: 78rem;
  --container-sm: 42rem;
  --container-lg: 74rem;
  --container-xl: 88rem;
  --gutter: clamp(0.75rem, 2vw, 1.25rem);

  --space-xs: 0.42rem;
  --space-sm: 0.72rem;
  --space-md: 1rem;
  --space-lg: 1.35rem;
  --space-xl: 1.9rem;
  --space-2xl: 2.5rem;

  --radius-md: 1rem;
  --radius-lg: 1.4rem;
  --radius-xl: 1.75rem;
  --radius-pill: 999px;

  --guide-radius: 1rem;
  --guide-gap: 0.9rem;

  --shell-glass-blur: 16px;

  --shell-header-min-height: 4.22rem;
  --shell-header-min-height-mobile: 3.45rem;
  --shell-control-height: 2.26rem;
  --shell-control-height-mobile: 2rem;
  --shell-control-pad-inline: 0.9rem;
  --shell-control-pad-inline-mobile: 0.76rem;
  --shell-footer-launcher-height-mobile: 2rem;
  --chamber-side-width: clamp(18rem, 40vw, 22rem);
  --chamber-wide-width: clamp(21rem, 34vw, 24rem);
  --chamber-sheet-max-height: min(74svh, 42rem);
  --viewport-window-bg-portal: var(--viewport-window-bg);
  --viewport-window-bg-workspace: var(--viewport-window-bg);

  /* donor transfer: identity lockup controls */
  --identity-brand-gap: 0.58rem;
  --identity-brand-gap-mobile: 0.42rem;

  --identity-sigil-size: 2.42rem;
  --identity-sigil-size-mobile: 1.98rem;
  --identity-sigil-inner-size: 82%;
  --identity-sigil-inner-size-mobile: 78%;
  --identity-sigil-radius: 0.88rem;
  --identity-sigil-radius-mobile: 0.74rem;

  --identity-sigil-system: native;
  --identity-sigil-glyph-scale: 0.82;

  --identity-title-size: clamp(1.02rem, 0.98rem + 0.22vw, 1.14rem);
  --identity-title-size-mobile: 0.94rem;
  --identity-meta-size: 0.72rem;
  --identity-meta-size-mobile: 0.64rem;
}

/* ---- admitted safe source: shared/styles/core/type-lock.css ---- */
html,
body {
  font-family: var(--font-body);
  color: var(--color-text);
}

button,
input,
select,
textarea,
.viewport-meta__label,
.viewport-meta__path,
.shell-nav__toggle,
.shell-nav__link,
.subnav__link,
.shell-footer__brand,
.shell-footer__note,
.shell-footer__link,
.shell-footer__launcher,
.button,
.state-debug,
.state-debug * {
  font-family: var(--font-ui);
}

.page-head__title,
.hero__title,
.section-intro__title,
.field__title,
.notice__title,
.panel-title,
.panel__title,
.service-lane__title,
.card__title,
.contact-callout__title,
.contact-block__title,
.portal-entry__title,
.utility-panel__title,
.form-panel__title,
.page-head__aside-title,
.hero__support-title,
.identity-plate__name,
.support-faceplate__title,
.support-chamber__title,
.shell-window-title,
.workspace-record-card__top .panel__title,
.portal-intake__list-item .panel__title {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-heavy);
  letter-spacing: -0.022em;
  line-height: 1.12;
}

.page-head__eyebrow,
.hero__eyebrow,
.section-intro__eyebrow,
.card__eyebrow,
.service-lane__eyebrow,
.panel-kicker,
.panel__kicker,
.field__eyebrow,
.eyebrow,
.panel__eyebrow,
.support-faceplate__eyebrow,
.support-chamber__eyebrow,
.viewport-meta__label {
  font-family: var(--font-ui);
  font-weight: var(--font-weight-bold);
}


/* Synapse identity controls */
.identity-plate__name,
.identity-plate__eyebrow,
.identity-plate__meta,
.shell-nav__toggle,
.shell-footer__launcher,
.shell-authbar__button,
.button--secure,
.button--enter,
.button--access {
  font-family: var(--font-identity);
  font-stretch: var(--font-identity-stretch);
}

/* ---- admitted safe source: shared/styles/content/layouts.css ---- */
/* layouts.css
   Shared content layout primitives.

   This file owns page-flow structure only.  The screenshots showed ordinary
   clinic sections visually passing underneath later panels on mobile.  The
   cause was that the scene fragments use l-* and section-shell grid classes,
   but this rebuild did not restore the flow/layout contract for those classes.
   These rules re-establish one owning page flow so sections stack, clear, and
   measure before the next surface paints.
*/

:root {
  --content-grid-gap: clamp(0.9rem, 0.72rem + 0.7vw, 1.35rem);
  --content-grid-gap-tight: clamp(0.64rem, 0.54rem + 0.45vw, 0.95rem);
  --page-flow-gap: clamp(1rem, 0.82rem + 0.84vw, 1.55rem);
  --page-flow-gap-compact: clamp(0.78rem, 0.66rem + 0.56vw, 1.1rem);
}

.l-container,
.page-section {
  box-sizing: border-box;
  inline-size: min(var(--container, 78rem), 100%);
  max-inline-size: 100%;
  margin-inline: auto;
  min-inline-size: 0;
}

.scene > .l-container,
.scene > .l-band,
.scene > .page-section {
  inline-size: 100%;
  max-inline-size: 100%;
  margin-inline: 0;
}

.l-page-head,
.l-page-section,
.l-band {
  display: block;
  position: relative;
  clear: both;
  min-inline-size: 0;
  margin-block: 0;
  isolation: isolate;
}

.l-band {
  inline-size: 100%;
  box-sizing: border-box;
}

.l-band > .l-container {
  inline-size: min(var(--container, 78rem), 100%);
  max-inline-size: 100%;
  margin-inline: auto;
}

.scene > :where(.l-container, .l-band, .page-section) + :where(.l-container, .l-band, .page-section) {
  margin-block-start: var(--page-flow-gap);
}

.scene > .l-page-head + .l-page-section,
.scene > .l-page-section--compact + .l-page-section,
.scene > .l-page-section + .l-band,
.scene > .l-band + .l-page-section {
  margin-block-start: var(--page-flow-gap-compact);
}

.l-grid,
.grid,
.section-shell__grid,
.hero-grid,
.panel-grid,
.portal-grid,
.workspace-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--content-grid-gap);
  align-items: start;
  min-inline-size: 0;
}

.l-grid > *,
.grid > *,
.section-shell__grid > *,
.hero-grid > *,
.panel-grid > *,
.portal-grid > *,
.workspace-grid > * {
  min-inline-size: 0;
}

.l-grid--split,
.grid--split,
.section-shell__grid--split,
.section-shell__grid--pair,
.section-shell__grid--triad,
.panel-grid--three,
.panel-grid--services {
  grid-template-columns: minmax(0, 1fr);
}

.l-stack {
  display: grid;
  gap: var(--space-md, 1rem);
  align-content: start;
  min-inline-size: 0;
}

.l-stack--tight {
  gap: var(--space-sm, 0.72rem);
}

.l-cluster {
  display: flex;
  flex-wrap: wrap;
  gap: 0.62rem;
  align-items: center;
  min-inline-size: 0;
}

.l-cluster--start {
  justify-content: flex-start;
}

.hero-grid {
  align-items: start;
}

.portal-stack,
.workspace-stack {
  display: grid;
  gap: var(--content-grid-gap);
}

@media (min-width: 56rem) {
  .hero-grid {
    grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 0.9fr);
  }

  .l-grid--split,
  .grid--split,
  .section-shell__grid--split,
  .section-shell__grid--pair {
    grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.92fr);
  }

  .section-shell__grid--triad,
  .panel-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .panel-grid--services {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-grid {
    grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 0.8fr);
  }

  .workspace-grid {
    grid-template-columns: minmax(14rem, 0.75fr) minmax(0, 1.4fr) minmax(16rem, 0.85fr);
  }
}

@media (max-width: 920px) {
  .hero-grid,
  .l-grid--split,
  .grid--split,
  .section-shell__grid--split,
  .section-shell__grid--pair,
  .section-shell__grid--triad,
  .panel-grid--three,
  .panel-grid--services,
  .portal-grid,
  .workspace-grid,
  .table-like__row {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  :root {
    --content-grid-gap: clamp(0.78rem, 2.2vw, 1rem);
    --page-flow-gap: clamp(0.86rem, 2.8vw, 1.15rem);
    --page-flow-gap-compact: clamp(0.68rem, 2.2vw, 0.95rem);
  }

  .scene > :where(.l-container, .l-band, .page-section) + :where(.l-container, .l-band, .page-section) {
    margin-block-start: var(--page-flow-gap);
  }
}

/* ---- admitted safe source: shared/styles/content/buttons.css ---- */
.button,
a.button,
button.button {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 2.45rem;
  padding: 0 1rem;
  border-radius: 999px;
  border: 1px solid var(--control-border, rgba(17, 37, 61, 0.12));
  background: color-mix(in srgb, var(--syn-surface, #fffdfa) 88%, transparent);
  color: var(--syn-identity, var(--color-title));
  font-family: var(--font-ui);
  font-size: 0.9rem;
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  letter-spacing: -0.01em;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 0.2rem 0.65rem rgba(17, 37, 61, 0.04);
  transition:
    transform var(--transition-fast),
    border-color var(--transition-fast),
    background var(--transition-fast),
    color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.button:hover,
.button:focus-visible,
a.button:hover,
a.button:focus-visible,
button.button:hover,
button.button:focus-visible {
  transform: translateY(-1px);
  outline: none;
  box-shadow: 0 0.45rem 1rem rgba(17, 37, 61, 0.07);
}

.button--primary {
  border-color: var(--syn-identity-soft, rgba(17, 37, 61, 0.14));
  background: linear-gradient(180deg, var(--syn-identity, #132947), var(--color-ink-850, #183457));
  color: var(--color-text-inverse, #fff);
}

.button--primary:hover,
.button--primary:focus-visible {
  border-color: var(--syn-action-line, rgba(33, 135, 146, 0.26));
  background: linear-gradient(180deg, var(--syn-identity-deep, #0d1a2a), var(--color-ink-800, #21456f));
  color: var(--color-text-inverse, #fff);
}

.button--quiet,
.button--ghost {
  background: linear-gradient(180deg, rgba(255, 253, 250, 0.96), rgba(246, 239, 229, 0.92));
  color: var(--syn-identity, var(--color-title));
}

.button--quiet:hover,
.button--quiet:focus-visible,
.button--ghost:hover,
.button--ghost:focus-visible {
  border-color: var(--syn-action-line, rgba(33, 135, 146, 0.24));
  background: linear-gradient(180deg, rgba(255, 253, 250, 1), rgba(237, 244, 243, 0.94));
}

.button[disabled],
.button.is-disabled,
.button[aria-disabled='true'] {
  opacity: 0.55;
  pointer-events: none;
  transform: none;
}

.support-chamber__auth-card .button--primary,
.support-chamber__auth-card .button--primary:hover,
.support-chamber__auth-card .button--primary:focus-visible,
.support-chamber__auth-card .button--primary[disabled],
.support-chamber__auth-card .button--primary.is-disabled,
.support-chamber__auth-card .button--primary[aria-disabled='true'] {
  color: var(--color-text-inverse, #fff);
}

/*
  Access / enter controls
  Use for threshold actions that move the user into a secure context
  such as Clinician Access, Workspace, Sign in, Open Console, etc.
  Keep this selective rather than global so hierarchy stays intact.
*/
.button--secure,
.button--enter,
.button--access {
  min-height: 2.36rem;
  padding-inline: 1rem;
  border-color: color-mix(in srgb, var(--syn-identity, #132947) 16%, transparent);
  background: rgba(255, 255, 255, 0.98);
  color: var(--syn-identity, var(--color-title));
  font-size: 0.86rem;
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.006em;
  box-shadow: 0 0.24rem 0.72rem rgba(17, 37, 61, 0.06);
}

.button--secure:hover,
.button--secure:focus-visible,
.button--enter:hover,
.button--enter:focus-visible,
.button--access:hover,
.button--access:focus-visible {
  transform: translateY(-2px);
  border-color: var(--syn-action-line, rgba(33, 135, 146, 0.24));
  background: linear-gradient(180deg, var(--color-ink-800, #21456f), var(--color-ink-850, #183457));
  color: var(--color-text-inverse);
  box-shadow: 0 0.6rem 1.1rem rgba(17, 37, 61, 0.14);
}


/* Synapse secure launcher identity type */
.button--secure,
.button--enter,
.button--access {
  font-family: var(--font-identity);
  font-stretch: var(--font-identity-stretch);
  font-weight: 760;
  letter-spacing: -0.018em;
}

/* =========================================================
   Synapse Button Hover Polish Wave
   Keep secure/access buttons quiet at rest and activate to
   blue/white on hover/focus.
   ========================================================= */
.button--secure,
.button--enter,
.button--access {
  border-color: color-mix(in srgb, var(--syn-identity, #132947) 16%, transparent);
  background: rgba(255, 255, 255, 0.94);
  color: var(--syn-identity, var(--color-title));
  box-shadow: 0 0.24rem 0.72rem rgba(17, 37, 61, 0.06);
}

.button--secure:hover,
.button--secure:focus-visible,
.button--enter:hover,
.button--enter:focus-visible,
.button--access:hover,
.button--access:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(33, 135, 146, 0.26);
  background: linear-gradient(180deg, var(--color-ink-800, #21456f), var(--color-ink-850, #183457));
  color: var(--color-text-inverse);
  box-shadow: 0 0.62rem 1.16rem rgba(17, 37, 61, 0.14);
}

/* =========================================================
   Login Button Corrective Patch
   Default auth primary buttons stay white/black. Hover/focus or explicit
   loading/active states use system blue with white text.
   ========================================================= */
.support-chamber__auth-card .button--primary {
  border-color: color-mix(in srgb, var(--syn-identity, #132947) 16%, transparent);
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,239,229,0.92));
  color: var(--syn-identity, var(--color-title));
  box-shadow: 0 0.24rem 0.72rem rgba(17, 37, 61, 0.06);
}

.support-chamber__auth-card .button--primary:hover,
.support-chamber__auth-card .button--primary:focus-visible,
.support-chamber__auth-card .button--primary.is-loading,
.support-chamber__auth-card .button--primary.is-active,
.support-chamber__auth-card .button--primary[aria-busy='true'],
.support-chamber__auth-card .button--primary[data-loading='true'] {
  border-color: var(--syn-action-line, rgba(33, 135, 146, 0.26));
  background: linear-gradient(180deg, var(--color-ink-800, #21456f), var(--color-ink-850, #183457));
  color: var(--color-text-inverse, #fff);
  box-shadow: 0 0.62rem 1.16rem rgba(17, 37, 61, 0.14);
}

.support-chamber__auth-card .button--primary[disabled],
.support-chamber__auth-card .button--primary.is-disabled,
.support-chamber__auth-card .button--primary[aria-disabled='true'] {
  border-color: color-mix(in srgb, var(--syn-identity, #132947) 16%, transparent);
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,239,229,0.92));
  color: var(--syn-identity, var(--color-title));
}

/* ---- admitted safe source: shared/styles/content/panels.css ---- */
.hero,
.page-head {
  border: 1px solid var(--chamber-line-structure, rgba(20, 32, 51, 0.08));
  border-radius: var(--radius-lg);
  overflow: clip;
}

.hero {
  background:
    radial-gradient(circle at top right, var(--syn-action-soft, rgba(33, 135, 146, 0.14)), transparent 42%),
    linear-gradient(180deg, rgba(255, 253, 250, 0.98), rgba(246, 239, 229, 0.9));
  box-shadow: var(--shadow-md);
}

.page-head {
  background:
    linear-gradient(180deg, rgba(255, 253, 250, 0.96), rgba(237, 244, 243, 0.84));
  box-shadow: 0 0.35rem 1rem rgba(20, 32, 51, 0.05);
}

.hero__inner {
  padding: clamp(1.65rem, 1.3rem + 1.3vw, 2.5rem);
  display: grid;
  gap: var(--space-xl);
}

.page-head__inner {
  padding: clamp(1.1rem, 0.95rem + 0.8vw, 1.65rem);
  display: grid;
  gap: var(--space-lg);
}

.page-head__eyebrow,
.hero__eyebrow,
.section-intro__eyebrow,
.card__eyebrow,
.service-lane__eyebrow,
.panel-kicker,
.panel__kicker {
  color: var(--syn-action, var(--color-teal-600));
  font-family: var(--font-ui);
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
}

.page-head__title,
.hero__title,
.section-intro__title {
  max-width: 19ch;
  font-family: var(--font-heading);
  font-weight: var(--font-weight-heavy);
  letter-spacing: -0.024em;
  line-height: 1.06;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.page-head__summary,
.hero__summary,
.section-intro__summary,
.summary-band__summary,
.page-head__aside-copy,
.hero__support-list li {
  color: var(--color-text-muted);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.58;
}

.section-intro {
  display: grid;
  gap: 0.65rem;
  margin-bottom: clamp(1rem, 0.9rem + 0.6vw, 1.4rem);
}

.section-intro--compact { margin-bottom: var(--space-md); }
.section-intro--center { justify-items: center; text-align: center; }

.panel,
.section-band,
.summary-band,
.utility-panel,
.contact-block,
.portal-entry,
.form-panel,
.card,
.hero__support-card,
.page-head__aside,
.info-pair__item,
.service-lane,
.contact-callout {
  border: 1px solid var(--chamber-line-structure, rgba(20, 32, 51, 0.08));
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: clamp(1rem, 0.95rem + 0.5vw, 1.35rem);
  display: grid;
  gap: var(--space-md);
}

.panel,
.section-band {
  background: rgba(255, 251, 246, 0.9);
  box-shadow: 0 0.22rem 0.65rem rgba(20, 32, 51, 0.03);
}

.section-band--mist,
.panel--mist { background: rgba(237, 244, 243, 0.78); }
.section-band--quiet,
.panel--quiet { background: rgba(246, 239, 229, 0.86); }
.panel--held,
.section-band--panel { min-height: 100%; }
.panel--vertical,
.section-band--vertical { display: flex; flex-direction: column; gap: 0.85rem; }
.panel--horizontal,
.section-band--horizontal { display: grid; gap: var(--space-md); align-items: start; }
.panel--narrative,
.section-band--narrative {
  border-top: 0;
  background: linear-gradient(180deg, rgba(255, 253, 250, 0.9), rgba(246, 239, 229, 0.76));
}
.panel--support,
.section-band--support,
.summary-band,
.utility-panel,
.contact-block,
.portal-entry,
.form-panel,
.hero__support-card,
.page-head__aside,
.info-pair__item {
  border-top: 3px solid var(--syn-casing-soft, rgba(109, 158, 162, 0.52));
  background: linear-gradient(180deg, rgba(246, 239, 229, 0.94), rgba(255, 253, 250, 0.86));
}
.panel--service,
.section-band--service,
.service-lane,
.card {
  border-top: 3px solid var(--syn-glass-line, rgba(109, 158, 162, 0.5));
  background: linear-gradient(180deg, rgba(255, 253, 250, 0.96), rgba(255, 247, 240, 0.9));
}
.panel--decision,
.section-band--decision,
.contact-callout {
  border-top: 3px solid color-mix(in srgb, var(--syn-identity, #132947) 32%, transparent);
  background: linear-gradient(180deg, rgba(229, 238, 241, 0.76), rgba(255, 253, 250, 0.92));
}
.notice,
.panel--critical {
  border: 1px solid rgba(163, 94, 82, 0.18);
  border-top: 3px solid rgba(163, 94, 82, 0.36);
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(141, 67, 58, 0.08), rgba(255, 253, 250, 0.92));
  box-shadow: 0 0.28rem 0.85rem rgba(20, 32, 51, 0.04);
  padding: clamp(1rem, 0.95rem + 0.5vw, 1.35rem);
  display: grid;
  gap: var(--space-md);
}

.section-shell {
  border: 1px solid var(--chamber-line-structure, rgba(20, 32, 51, 0.08));
  border-radius: var(--radius-lg);
  background: rgba(255, 251, 246, 0.92);
  box-shadow: 0 0.22rem 0.65rem rgba(20, 32, 51, 0.03);
  padding: clamp(1rem, 0.95rem + 0.6vw, 1.5rem);
  display: grid;
  gap: var(--space-lg);
}

.section-shell--mist {
  background: linear-gradient(180deg, rgba(237, 244, 243, 0.84), rgba(255, 253, 250, 0.94));
}

.section-shell--quiet {
  background: linear-gradient(180deg, rgba(255, 253, 250, 0.92), rgba(246, 239, 229, 0.84));
}

.section-shell--support {
  background: linear-gradient(180deg, rgba(246, 239, 229, 0.96), rgba(255, 253, 250, 0.9));
}

.section-shell__lead,
.section-shell__body,
.section-shell__support,
.section-shell__decision,
.section-shell__actions { min-width: 0; }
.section-shell__lead .section-intro { margin-bottom: 0; }
.section-shell__actions { display: grid; gap: var(--space-md); align-content: start; }
.section-shell__actions .l-cluster { margin-top: auto; }

.subpanel {
  border: 1px solid var(--chamber-line-structure, rgba(20, 32, 51, 0.08));
  border-radius: var(--radius-lg);
  background: rgba(255, 251, 246, 0.78);
  box-shadow: 0 0.18rem 0.5rem rgba(20, 32, 51, 0.02);
  padding: clamp(0.9rem, 0.85rem + 0.35vw, 1.15rem);
  display: grid;
  gap: 0.75rem;
  min-height: 100%;
}

.subpanel--support {
  border-top: 3px solid var(--syn-casing-soft, rgba(109, 158, 162, 0.46));
  background: linear-gradient(180deg, rgba(246, 244, 239, 0.88), rgba(255, 255, 255, 0.8));
}

.subpanel--service {
  border-top: 3px solid var(--syn-glass-line, rgba(109, 158, 162, 0.44));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.84));
}

.subpanel--decision {
  border-top: 3px solid color-mix(in srgb, var(--syn-identity, #132947) 28%, transparent);
  background: linear-gradient(180deg, rgba(232, 240, 243, 0.54), rgba(255, 255, 255, 0.88));
}

.panel-stack,
.panel__stack,
.service-lane__header { display: grid; gap: 0.5rem; }
.panel-stack--tight,
.panel__stack--tight { gap: 0.38rem; }
.panel-stack--loose,
.panel__stack--loose { gap: 0.75rem; }

.panel-title,
.panel__title,
.service-lane__title,
.card__title,
.contact-callout__title,
.contact-block__title,
.portal-entry__title,
.utility-panel__title,
.form-panel__title,
.page-head__aside-title,
.hero__support-title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  line-height: 1.14;
  letter-spacing: -0.016em;
  text-wrap: balance;
}

.panel-summary,
.panel__summary,
.service-lane__summary,
.card__summary,
.contact-callout__copy,
.page-head__aside-copy {
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  line-height: 1.56;
  margin: 0;
  max-width: 46ch;
}

.panel-list,
.panel__list,
.service-lane__list,
.card__list,
.summary-band__list {
  margin: 0;
  padding-left: 1.05rem;
  display: grid;
  gap: 0.5rem;
}

.panel-list li,
.panel__list li,
.service-lane__list li,
.card__list li,
.summary-band__list li {
  line-height: 1.52;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.panel-note,
.panel__note,
.service-lane__note {
  border-top: 1px solid rgba(20, 32, 51, 0.08);
  color: var(--color-text-muted);
  font-size: var(--font-size-2xs);
  line-height: 1.5;
  margin-top: auto;
  padding-top: 0.8rem;
}

.panel-meta,
.panel__meta,
.contact-block__meta,
.portal-entry__meta {
  list-style: none;
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
}

.panel-meta li,
.panel__meta li,
.contact-block__meta li,
.portal-entry__meta li {
  color: var(--color-text);
  font-size: var(--font-size-sm);
  line-height: 1.5;
}

.contact-utility__map {
  border: 1px solid var(--chamber-line-structure, rgba(20, 32, 51, 0.08));
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(232, 240, 243, 0.84), rgba(255, 255, 255, 0.9));
  min-height: 13rem;
  padding: clamp(1.05rem, 0.95rem + 0.7vw, 1.55rem);
  display: grid;
  align-items: end;
}

.contact-utility__map-copy {
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  line-height: 1.55;
  max-width: 36ch;
}

@media (min-width: 48rem) {
  .panel--horizontal,
  .section-band--horizontal {
    grid-template-columns: minmax(0, 1fr) minmax(12rem, 0.9fr);
  }
}


.shell-body[data-support-chamber='portal-auth'] .page-head__title,
.shell-body[data-support-chamber='workspace-auth'] .page-head__title,
.shell-body[data-support-chamber='portal-auth'] .section-intro__title,
.shell-body[data-support-chamber='workspace-auth'] .section-intro__title,
.shell-body[data-support-chamber='portal-auth'] .panel-title,
.shell-body[data-support-chamber='workspace-auth'] .panel-title,
.shell-body[data-support-chamber='portal-auth'] .panel__title,
.shell-body[data-support-chamber='workspace-auth'] .panel__title {
  max-width: 18ch !important;
}

.shell-body[data-support-chamber='portal-auth'] .page-head__summary,
.shell-body[data-support-chamber='workspace-auth'] .page-head__summary,
.shell-body[data-support-chamber='portal-auth'] .section-intro__summary,
.shell-body[data-support-chamber='workspace-auth'] .section-intro__summary,
.shell-body[data-support-chamber='portal-auth'] .panel-summary,
.shell-body[data-support-chamber='workspace-auth'] .panel-summary,
.shell-body[data-support-chamber='portal-auth'] .panel__summary,
.shell-body[data-support-chamber='workspace-auth'] .panel__summary {
  max-width: 48ch !important;
}

/* ---- admitted safe source: shared/styles/content/fields.css ---- */
.field {
  border-radius: var(--radius-lg);
  padding: clamp(1rem, 2vw, 1.35rem);
  background: linear-gradient(180deg, var(--color-paper-100) 0%, var(--color-mist-150) 100%);
  border: 1px solid rgba(20, 32, 51, 0.08);
  box-shadow: var(--shadow-sm);
}

.field--soft {
  background: linear-gradient(180deg, rgba(251,247,240,0.98) 0%, rgba(237,244,243,0.98) 100%);
}

.field--brand {
  background: linear-gradient(180deg, rgba(255,253,250,0.98) 0%, rgba(229,238,241,0.98) 100%);
}

.field__header,
.page-header {
  display: grid;
  gap: 0.55rem;
  margin-bottom: 1rem;
}

.field__eyebrow,
.eyebrow,
.panel__eyebrow {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-text-soft);
}

.field__title,
.hero__title {
  margin: 0;
  font-family: var(--font-heading);
  color: var(--color-title);
  font-size: clamp(1.48rem, 1.15rem + 1.15vw, 2.2rem);
  font-weight: var(--font-weight-heavy);
  line-height: 1.06;
  letter-spacing: -0.03em;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.field__summary,
.hero__summary,
.panel__summary {
  margin: 0;
  max-width: 72ch;
  font-family: var(--font-body);
  line-height: 1.62;
}

.page-header__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 0.4rem;
}

.kicker-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  list-style: none;
  padding: 0;
  margin: 0.15rem 0 0;
}

.kicker-list li,
.status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0 0.75rem;
  border-radius: 999px;
  background: rgba(38, 74, 102, 0.1);
  color: var(--color-title);
  font-family: var(--font-ui);
  font-size: 0.88rem;
  font-weight: var(--font-weight-semibold);
}

@media (max-width: 760px) {
  .field { padding: 0.9rem; }
  .field__title,
  .hero__title { font-size: clamp(1.34rem, 1.08rem + 1vw, 1.9rem); }
}

.action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.notice__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  color: var(--color-title);
  line-height: 1.12;
}

/* ---- admitted safe source: shared/styles/content/forms.css ---- */
.form-field {
  display: grid;
  gap: 0.42rem;
}

.form-field > span,
.workspace-form-label {
  color: var(--color-title);
  font-family: var(--font-ui);
  font-size: 0.84rem;
  font-weight: var(--font-weight-bold);
  line-height: 1.35;
  letter-spacing: -0.01em;
}

.form-field input,
.form-field select,
.form-field textarea,
.workspace-form-field input,
.workspace-form-field select,
.workspace-form-field textarea {
  width: 100%;
  min-height: 2.65rem;
  padding: 0.72rem 0.85rem;
  border-radius: 1rem;
  border: 1px solid rgba(17, 37, 61, 0.12);
  background: rgba(255, 253, 250, 0.96);
  color: var(--color-title);
  font-family: var(--font-ui);
  font-size: 0.96rem;
  line-height: 1.45;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.form-field textarea,
.workspace-form-field textarea {
  min-height: 7rem;
  resize: vertical;
}

.form-field input:focus-visible,
.form-field select:focus-visible,
.form-field textarea:focus-visible,
.workspace-form-field input:focus-visible,
.workspace-form-field select:focus-visible,
.workspace-form-field textarea:focus-visible {
  outline: none;
  border-color: rgba(33, 95, 134, 0.32);
  box-shadow: 0 0 0 3px rgba(33, 95, 134, 0.12);
  background: rgba(255, 255, 255, 1);
}

.form-field--checkbox {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 0.7rem;
}

.form-field--checkbox input {
  width: 1.1rem;
  min-height: 1.1rem;
  height: 1.1rem;
  margin-top: 0.15rem;
  padding: 0;
}

.form-field--checkbox span {
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: var(--font-weight-medium);
  line-height: 1.5;
}

.form-panel--public {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.8));
}

.form-panel__intro {
  color: var(--color-text-muted);
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  margin: 0;
  max-width: 60ch;
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  align-items: center;
}

.form-field--inline {
  display: flex;
  gap: var(--space-md);
  align-items: center;
}

.form-field--inline > label {
  margin-bottom: 0;
  min-width: 10rem;
}

.form-note,
.form-disclaimer,
.portal-intake-message,
.portal-admin__minor,
.workspace-record-card__message,
.portal-intake__fine,
.support-chamber__hint {
  color: var(--color-text-muted);
  font-family: var(--font-body);
  font-size: 0.9rem;
  line-height: 1.55;
}

.form-status {
  border: 1px solid rgba(20, 32, 51, 0.08);
  border-radius: var(--radius-md);
  background: rgba(232, 240, 243, 0.5);
  color: var(--color-title);
  font-family: var(--font-ui);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  padding: 0.85rem 1rem;
}

[data-disclosure] {
  border: 1px solid rgba(20, 32, 51, 0.08);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.86);
  overflow: clip;
  box-shadow: 0 0.16rem 0.45rem rgba(20, 32, 51, 0.025);
}

[data-disclosure-toggle] {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-md);
  padding: 1rem 1.1rem;
  border: 0;
  background: transparent;
  color: var(--color-title);
  font-family: var(--font-ui);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  text-align: left;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

[data-disclosure-toggle]:hover,
[data-disclosure-toggle]:focus-visible {
  background: rgba(109, 158, 162, 0.08);
}

[data-disclosure-toggle]::after {
  content: '+';
  font-size: 1.15rem;
  line-height: 1;
}

[data-disclosure].is-open [data-disclosure-toggle]::after {
  content: '−';
}

[data-disclosure-panel] {
  padding: 0 var(--space-lg) var(--space-lg);
}

[data-disclosure-panel] > :first-child { margin-top: 0; }

/* ---- admitted safe source: shared/styles/content/hero.css ---- */
.hero {
  position: relative;
  isolation: isolate;
}

.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 100% 0%, rgba(109, 158, 162, 0.18), transparent 34%),
    radial-gradient(circle at 0% 100%, rgba(51, 70, 92, 0.11), transparent 40%);
  pointer-events: none;
  z-index: -1;
}

.hero::after {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 34%;
  background: linear-gradient(180deg, rgba(246, 244, 239, 0), rgba(232, 240, 243, 0.28));
  pointer-events: none;
}

.hero__inner { align-items: start; }
.hero__title { max-width: 18ch; }
.hero__summary { max-width: 62ch; }
.hero__meta { gap: 0.55rem; }
.hero__support { display: grid; gap: var(--space-md); }
.hero__support > * { max-width: none; }
.hero__support-list {
  list-style: none;
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
}

.hero--page {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.6)),
    radial-gradient(circle at top right, rgba(109, 158, 162, 0.12), transparent 46%);
}

.hero--compact .hero__inner { padding-block: var(--space-lg); }
.hero--minimal .hero__summary { max-width: 58ch; }

/* ---- admitted safe source: shared/styles/content/page-head.css ---- */
.page-head { position: relative; }
.page-head__inner { align-items: start; gap: var(--space-lg); }
.page-head__title {
  max-width: 24ch;
  letter-spacing: -0.024em;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.page-head__summary { max-width: 64ch; }
.page-head__meta { margin-top: var(--space-xs); }
.page-head__aside { align-self: start; }
.page-head--utility .page-head__title { max-width: 26ch; }
.page-head--utility .page-head__summary { max-width: 66ch; }
.page-head--portal {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.74)),
    radial-gradient(circle at top right, rgba(51, 70, 92, 0.1), transparent 48%);
}
@media (min-width: 64rem) {
  .page-head__inner.l-grid--split,
  .page-head__inner.grid--split { align-items: start; }
}

/* ---- admitted safe source: css/panel-system.css ---- */
/* panel-system.css
   Panel Surface Convergence Wave

   Contract:
   - Panel = root context surface / scene texture.
   - Panel Media Bay = image-owned visual housing.
   - Panel Card = nested support surface.
   - Panel Plate = diagram / route / structured visual instrument.
   - Cards own plates and plate text. Media bays own images.
*/

:root {
  --panel-surface-gap: clamp(0.9rem, 0.7rem + 0.8vw, 1.35rem);
  --panel-card-radius: 1.18rem;
  --panel-card-border: var(--chamber-line-structure-strong, rgba(19, 41, 71, 0.105));
  --panel-card-shadow: 0 0.52rem 1.1rem rgba(17, 37, 61, 0.05);
  --panel-card-accent: var(--syn-bridge-soft, rgba(33, 135, 146, 0.34));
  --panel-card-accent-warm: var(--syn-casing-soft, rgba(164, 132, 72, 0.15));

  --panel-media-bay-radius: 1.24rem;
  --panel-media-bay-border: var(--chamber-line-casing, rgba(19, 41, 71, 0.12));
  --panel-media-bay-shadow: 0 0.9rem 1.75rem rgba(16, 37, 63, 0.085);
  --panel-media-bay-min-height: clamp(13rem, 25vw, 21rem);
  --panel-media-bay-aspect: 16 / 10;

  --panel-plate-border: var(--chamber-line-structure-strong, rgba(19, 41, 71, 0.105));
  --panel-plate-field-top: rgba(249, 252, 253, 0.985);
  --panel-plate-field-bottom: rgba(237, 245, 248, 0.96);
  --panel-plate-node-border: color-mix(in srgb, var(--syn-identity, #132947) 16%, transparent);
  --panel-plate-node-top: rgba(255, 255, 255, 0.99);
  --panel-plate-node-bottom: rgba(236, 243, 246, 0.97);
  --panel-plate-node-shadow: 0 0.18rem 0.42rem rgba(17, 37, 61, 0.085);
  --panel-plate-focus-border: var(--syn-casing, rgba(164, 132, 72, 0.24));
  --panel-plate-focus-shadow: 0 0.26rem 0.68rem rgba(17, 37, 61, 0.095);
  --panel-diagram-route-soft: rgba(78, 122, 148, 0.28);
  --panel-diagram-route-accent: var(--syn-bridge-soft, rgba(39, 128, 134, 0.42));
}

/* Panels remain the owning context surfaces. */
.panel-frame .panel-frame__layout {
  align-items: center;
}

.panel-frame .panel-frame__layout--media {
  align-items: stretch;
}

.panel-frame__copy,
.panel-frame__media {
  min-width: 0;
}

.panel-frame__copy {
  align-self: center;
}

.panel-frame__media {
  align-self: stretch;
}

@media (min-width: 64rem) {
  .panel-frame--hero .l-grid--split,
  .panel-frame--hero .grid--split,
  .panel-frame--hero .panel-frame__layout {
    grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.92fr);
    gap: clamp(1.15rem, 1vw, 1.65rem);
  }
}

/* Media bays are panel-owned image housings, not cards. */
.panel-media-bay,
.panel-media {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: block;
  width: 100%;
  min-width: 0;
  min-height: var(--panel-media-bay-min-height);
  aspect-ratio: var(--panel-media-bay-aspect);
  margin: 0;
  border-radius: var(--panel-media-bay-radius);
  border: 1px solid var(--panel-media-bay-border);
  background: linear-gradient(180deg, rgba(229, 238, 241, 0.72), rgba(255, 253, 250, 0.86));
  box-shadow: var(--panel-media-bay-shadow);
}

.panel-media-bay::before,
.panel-media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(circle at 84% 8%, rgba(255, 255, 255, 0.16), transparent 32%),
    linear-gradient(90deg, rgba(17, 37, 61, 0.055), transparent 20%, transparent 82%, rgba(17, 37, 61, 0.04)),
    linear-gradient(180deg, rgba(17, 37, 61, 0.015), transparent 38%, rgba(17, 37, 61, 0.035));
}

.panel-media-bay--hero,
.panel-media--hero {
  --panel-media-bay-min-height: clamp(13.2rem, 25vw, 21.5rem);
  --panel-media-bay-aspect: 16 / 10;
}

.panel-media-bay[data-media-bay='hero'],
.panel-media[data-media-bay='hero'] {
  align-self: stretch;
}

.panel-media-bay__image,
.panel-media__image {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: var(--panel-media-position, center);
  filter: saturate(0.88) contrast(0.98) brightness(1.02);
}

.about-page .panel-media-bay__image,
.about-page .panel-media__image { --panel-media-position: center 45%; }
.services-page .panel-media-bay__image,
.services-page .panel-media__image { --panel-media-position: center 52%; }
.for-clinicians-page .panel-media-bay__image,
.for-clinicians-page .panel-media__image { --panel-media-position: center 45%; }
.practice-page .panel-media-bay__image,
.practice-page .panel-media__image { --panel-media-position: center 48%; }

/* Cards are nested support surfaces. Cards own plate text and plates. */
.panel-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  gap: 0.78rem;
  align-content: start;
  min-width: 0;
  padding: clamp(0.92rem, 0.8rem + 0.45vw, 1.18rem);
  border-radius: var(--panel-card-radius);
  border: 1px solid var(--panel-card-border);
  background:
    radial-gradient(circle at 94% 8%, rgba(164, 132, 72, 0.075), transparent 36%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.965), rgba(248, 250, 250, 0.9));
  box-shadow: var(--panel-card-shadow);
}

.panel-card::before,
.panel-card::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: inherit;
}

.panel-card::before {
  z-index: 0;
  inset: 0;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.58),
    inset 0 -1px 0 rgba(19, 41, 71, 0.035);
}

.panel-card::after {
  z-index: 1;
  inset-block: 0.82rem;
  inset-inline-start: 0.72rem;
  width: 3px;
  border-radius: 999px;
  background:
    linear-gradient(180deg,
      var(--panel-card-accent-warm),
      var(--panel-card-accent) 42%,
      var(--panel-card-accent-warm));
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.34);
  opacity: 0.74;
}

.panel-card > * {
  position: relative;
  z-index: 2;
  min-width: 0;
}

.panel-card--rail {
  padding-inline-start: clamp(1.18rem, 1.05rem + 0.45vw, 1.42rem);
}

.panel-card--plate,
.panel-card--diagram {
  gap: 0.72rem;
}

.panel-card--support {
  min-height: auto;
}

.panel-card__content {
  display: grid;
  gap: 0.55rem;
}

.panel-chip-list,
.practice-hero-panel__list.panel-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.panel-chip-list li,
.practice-hero-panel__list.panel-chip-list li {
  display: inline-flex;
  align-items: center;
  min-height: 1.78rem;
  padding: 0.32rem 0.62rem;
  border-radius: 999px;
  border: 1px solid rgba(19, 41, 71, 0.095);
  background: rgba(255, 255, 255, 0.78);
  color: rgba(19, 41, 71, 0.84);
  font-family: var(--font-ui);
  font-size: 0.76rem;
  font-weight: var(--font-weight-semibold);
  line-height: 1.15;
}

/* Plates are structured visual instruments owned by cards.
   Canonical plate template visuals now live in css/panel-plates.css.
   The rules below remain as fallback/compatibility surface styling. */
.panel-plate,
.panel-instrument {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 1rem;
  border: 1px solid var(--panel-plate-border);
  background:
    radial-gradient(circle at 88% 8%, rgba(164, 132, 72, 0.07), transparent 34%),
    radial-gradient(circle at 12% 12%, rgba(126, 181, 187, 0.09), transparent 36%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.985), rgba(247, 250, 251, 0.95));
}

.panel-plate--diagram,
.panel-instrument--diagram {
  display: block;
  padding: 0;
}

.panel-plate__field,
.panel-instrument__field {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: var(--panel-diagram-min-height, 13rem);
  border-radius: inherit;
  background:
    radial-gradient(circle at 22% 16%, rgba(255, 255, 255, 0.98), transparent 28%),
    radial-gradient(circle at 78% 82%, rgba(126, 181, 187, 0.14), transparent 34%),
    linear-gradient(180deg, var(--panel-plate-field-top), var(--panel-plate-field-bottom));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.62),
    inset 0 -0.65rem 1.2rem rgba(33, 95, 134, 0.04),
    0 0 0 1px rgba(164, 132, 72, 0.035);
}

.panel-plate__field::before,
.panel-plate__field::after,
.panel-instrument__field::before,
.panel-instrument__field::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 0;
}

.panel-plate__field::before,
.panel-instrument__field::before {
  inset: 0.95rem;
  border-radius: 0.82rem;
  border: 1px solid rgba(33, 95, 134, 0.085);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.36), rgba(255, 255, 255, 0.08));
}

.panel-plate__field::after,
.panel-instrument__field::after {
  left: 10%;
  right: 10%;
  top: 50%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(33, 95, 134, 0.10), transparent);
  opacity: 0.72;
}

.panel-plate__field--compact,
.panel-instrument__field--compact {
  min-height: var(--panel-diagram-compact-min-height, 9.6rem);
}

.panel-diagram__routes {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.panel-diagram__ring,
.panel-diagram__route {
  fill: none;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.panel-diagram__ring {
  stroke: rgba(78, 122, 148, 0.15);
  stroke-width: 1.05;
  stroke-dasharray: 5 7;
}

.panel-diagram__route--soft,
.panel-diagram__route--accent {
  stroke-width: 1.95;
  opacity: 0.9;
}

.panel-diagram__route--soft { stroke: var(--panel-diagram-route-soft); }
.panel-diagram__route--accent { stroke: var(--panel-diagram-route-accent); }
.panel-diagram__route--guide,
.panel-diagram__route--spine {
  stroke: rgba(78, 122, 148, 0.15);
  stroke-width: 1.15;
  opacity: 0.86;
}

.panel-diagram__node,
.panel-diagram__focus {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0 0.82rem;
  border-radius: 999px;
  border: 1px solid var(--panel-plate-node-border);
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.82), transparent 52%),
    linear-gradient(180deg, var(--panel-plate-node-top), var(--panel-plate-node-bottom));
  box-shadow: var(--panel-plate-node-shadow);
  color: var(--color-title);
  font-family: var(--font-ui);
  font-size: 0.79rem;
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.012em;
  line-height: 1.08;
  white-space: nowrap;
  text-align: center;
}

.panel-diagram__node::before,
.panel-diagram__focus::before {
  content: "";
  width: 0.34rem;
  height: 0.34rem;
  margin-inline-end: 0.42rem;
  border-radius: 999px;
  background: rgba(39, 128, 134, 0.30);
  box-shadow: 0 0 0 0.18rem rgba(39, 128, 134, 0.08);
}

.panel-diagram__focus {
  z-index: 3;
  min-height: 2.18rem;
  padding: 0.2rem 0.95rem;
  border-radius: 0.95rem;
  border-color: var(--panel-plate-focus-border);
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.9), transparent 54%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.995), rgba(238, 243, 243, 0.98));
  box-shadow: var(--panel-plate-focus-shadow);
}

.panel-diagram__focus::before {
  background: rgba(164, 132, 72, 0.46);
  box-shadow: 0 0 0 0.18rem rgba(164, 132, 72, 0.10);
}

/* Practice coordination diagram */
.practice-diagram--coordination .panel-diagram__node--neurology { top: 17%; left: 10%; }
.practice-diagram--coordination .panel-diagram__node--psychiatry { top: 17%; right: 10%; }
.practice-diagram--coordination .panel-diagram__focus {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: min(76%, 13.6rem);
}
.practice-diagram--coordination .panel-diagram__node--neuropsychology {
  bottom: 15%;
  left: 50%;
  transform: translateX(-50%);
}

/* Practice next-step route diagram */
.practice-diagram--route .panel-diagram__node--services { top: 18%; left: 11%; }
.practice-diagram--route .panel-diagram__focus {
  top: 47%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.practice-diagram--route .panel-diagram__node--contact { right: 10%; bottom: 17%; }
.practice-diagram--route .panel-diagram__route--soft,
.practice-diagram--route .panel-diagram__route--accent { stroke-width: 1.85; opacity: 0.88; }
.practice-diagram--route .panel-diagram__route--accent { stroke-width: 2; opacity: 0.92; }

/* About convergence diagram */
.about-diagram--convergence .panel-diagram__node--focused { top: 14%; left: 9%; }
.about-diagram--convergence .panel-diagram__node--review { top: 42%; left: 9%; }
.about-diagram--convergence .panel-diagram__node--scope { bottom: 13%; left: 9%; }
.about-diagram--convergence .panel-diagram__focus {
  top: 50%;
  right: 9%;
  transform: translateY(-50%);
  width: min(42%, 10.5rem);
  white-space: normal;
}

/* Services lane diagram */
.services-diagram--lanes .panel-diagram__node {
  left: 8%;
  justify-content: flex-start;
  min-width: min(58%, 14rem);
}
.services-diagram--lanes .panel-diagram__node--neurology { top: 12%; }
.services-diagram--lanes .panel-diagram__node--psychiatry { top: 31%; }
.services-diagram--lanes .panel-diagram__node--neuropsychology { top: 50%; }
.services-diagram--lanes .panel-diagram__node--multidisciplinary { top: 69%; }
.services-diagram--lanes .panel-diagram__focus {
  top: 42%;
  right: 8%;
  transform: translateY(-50%);
  width: min(35%, 9.6rem);
  white-space: normal;
}

/* Clinician route diagram */
.clinicians-diagram--route .panel-diagram__node--entry { top: 42%; left: 9%; }
.clinicians-diagram--route .panel-diagram__focus {
  top: 47%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 8.4rem;
}
.clinicians-diagram--route .panel-diagram__node--contact { top: 18%; right: 9%; }
.clinicians-diagram--route .panel-diagram__node--secure { bottom: 18%; right: 9%; }

.section-shell__grid > .panel-card,
.l-grid > .panel-card,
.grid > .panel-card {
  min-height: 100%;
}

.practice-route-card {
  display: grid;
}

/* Compatibility: old media instruments should not render if an older fragment survives. */
.panel-instrument--media { display: none; }

@media (max-width: 980px) {
  .panel-media-bay,
  .panel-media {
    --panel-media-bay-min-height: clamp(10.5rem, 28vw, 15rem);
  }

  .panel-plate__field,
  .panel-instrument__field { min-height: 12rem; }
  .panel-plate__field--compact,
  .panel-instrument__field--compact { min-height: 9.4rem; }
}

@media (max-width: 760px) {
  .panel-frame .panel-frame__layout { align-items: start; }

  .panel-media-bay,
  .panel-media {
    --panel-media-bay-min-height: 11rem;
    --panel-media-bay-aspect: 16 / 9;
    border-radius: 1rem;
  }

  .panel-card {
    border-radius: 1rem;
    padding: 0.88rem 0.88rem 0.88rem 1.16rem;
  }

  .panel-card::after {
    inset-block: 0.68rem;
    inset-inline-start: 0.62rem;
    width: 2px;
  }

  .panel-plate,
  .panel-instrument { border-radius: 0.88rem; }

  .panel-plate__field,
  .panel-plate__field--compact,
  .panel-instrument__field,
  .panel-instrument__field--compact { min-height: 10.8rem; }

  .panel-diagram__node,
  .panel-diagram__focus {
    font-size: 0.72rem;
    min-height: 1.86rem;
    padding-inline: 0.62rem;
  }

  .panel-diagram__node::before,
  .panel-diagram__focus::before {
    width: 0.28rem;
    height: 0.28rem;
    margin-inline-end: 0.32rem;
  }

  .practice-diagram--coordination .panel-diagram__node--neurology { top: 16%; left: 8%; }
  .practice-diagram--coordination .panel-diagram__node--psychiatry { top: 16%; right: 8%; }
  .practice-diagram--coordination .panel-diagram__focus { top: 48%; min-width: auto; max-width: 78%; }
  .practice-diagram--coordination .panel-diagram__node--neuropsychology { bottom: 14%; }

  .practice-diagram--route .panel-diagram__node--services { left: 8%; }
  .practice-diagram--route .panel-diagram__node--contact { right: 8%; }

  .about-diagram--convergence .panel-diagram__focus { right: 6%; width: min(43%, 9.4rem); }
  .services-diagram--lanes .panel-diagram__node { min-width: min(60%, 12rem); }
  .services-diagram--lanes .panel-diagram__focus { right: 6%; width: min(38%, 8.8rem); }

  .clinicians-diagram--route .panel-diagram__node--entry { left: 7%; }
  .clinicians-diagram--route .panel-diagram__node--contact,
  .clinicians-diagram--route .panel-diagram__node--secure { right: 7%; }
}

@media (max-width: 420px) {
  .panel-media-bay,
  .panel-media { --panel-media-bay-min-height: 9.8rem; }

  .panel-plate__field,
  .panel-plate__field--compact,
  .panel-instrument__field,
  .panel-instrument__field--compact { min-height: 10.2rem; }

  .panel-diagram__node,
  .panel-diagram__focus { font-size: 0.68rem; padding-inline: 0.52rem; }

  .practice-diagram--coordination .panel-diagram__node--neurology { left: 5%; }
  .practice-diagram--coordination .panel-diagram__node--psychiatry { right: 5%; }
  .practice-diagram--route .panel-diagram__node--services { left: 5%; }
  .practice-diagram--route .panel-diagram__node--contact { right: 5%; }
}


/* Media bay state logic
   The shell sets body[data-layout-mode]. Media bays use that state to
   switch between side-fill, compact-side, and banner behavior. */
@media (min-width: 64rem) {
  .panel-frame--hero .panel-frame__layout--media {
    align-items: stretch;
    grid-template-columns: minmax(0, 1.08fr) minmax(21rem, 0.92fr);
  }

  .shell-body[data-layout-mode='wide-dual'] .panel-frame--hero .panel-frame__layout--media {
    min-height: clamp(20rem, 36vh, 28rem);
  }

  .shell-body[data-layout-mode='wide-dual'] .panel-media-bay[data-media-bay='hero'],
  .shell-body[data-layout-mode='wide-dual'] .panel-media[data-media-bay='hero'] {
    --panel-media-bay-min-height: 100%;
    --panel-media-bay-aspect: auto;
    height: 100%;
    align-self: stretch;
  }

  .shell-body[data-layout-mode='landscape-side'] .panel-frame--hero .panel-frame__layout--media {
    min-height: clamp(15.5rem, 46vh, 22rem);
    grid-template-columns: minmax(0, 1.12fr) minmax(20rem, 0.88fr);
    gap: clamp(1rem, 1.2vw, 1.55rem);
  }

  .shell-body[data-layout-mode='landscape-side'] .panel-media-bay[data-media-bay='hero'],
  .shell-body[data-layout-mode='landscape-side'] .panel-media[data-media-bay='hero'] {
    --panel-media-bay-min-height: 100%;
    --panel-media-bay-aspect: auto;
    height: 100%;
    align-self: stretch;
  }
}

.shell-body[data-layout-mode='portrait-single'] .panel-frame__layout--media {
  grid-template-columns: 1fr;
  align-items: start;
}

.shell-body[data-layout-mode='portrait-single'] .panel-media-bay[data-media-bay='hero'],
.shell-body[data-layout-mode='portrait-single'] .panel-media[data-media-bay='hero'] {
  --panel-media-bay-min-height: clamp(10.5rem, 42vw, 15rem);
  --panel-media-bay-aspect: 16 / 9;
  align-self: stretch;
  height: auto;
}

.shell-body[data-layout-mode='landscape-side'] .panel-card { padding-block: 0.82rem; }
.shell-body[data-layout-mode='landscape-side'] .panel-plate__field,
.shell-body[data-layout-mode='landscape-side'] .panel-plate__field--compact,
.shell-body[data-layout-mode='landscape-side'] .panel-instrument__field,
.shell-body[data-layout-mode='landscape-side'] .panel-instrument__field--compact {
  min-height: 8.8rem;
}

.panel-media-bay[data-media-bay='hero'] .panel-media-bay__image,
.panel-media[data-media-bay='hero'] .panel-media__image {
  height: 100%;
}

/* Panel copy state logic
   Uses the same shell body[data-layout-mode] state as media bays so copy,
   titles, and summaries occupy the available panel space without forcing
   unnecessary desktop line breaks. */
.panel-frame__copy,
.section-shell__lead,
.section-band--narrative,
.section-band__lead {
  min-width: 0;
}

.panel-frame__copy .page-head__title,
.panel-frame__copy .page-head__summary,
.section-shell__lead .section-intro__title,
.section-shell__lead .section-intro__summary,
.section-band--narrative .section-intro__title,
.section-band--narrative .section-intro__summary {
  overflow-wrap: normal;
  word-break: normal;
}

@media (min-width: 64rem) {
  .shell-body[data-layout-mode='wide-dual'] .panel-frame--hero .panel-frame__layout--media {
    grid-template-columns: minmax(0, 1.2fr) minmax(21rem, 0.8fr);
    gap: clamp(1.35rem, 1.4vw, 2rem);
  }

  .shell-body[data-layout-mode='wide-dual'] .panel-frame__copy {
    max-width: min(58rem, 100%);
  }

  .shell-body[data-layout-mode='wide-dual'] .panel-frame__copy .page-head__title {
    max-width: 34ch;
  }

  .shell-body[data-layout-mode='wide-dual'] .panel-frame__copy .page-head__summary {
    max-width: 76ch;
  }

  .shell-body[data-layout-mode='wide-dual'] .panel-frame__copy .page-head__meta {
    max-width: 72ch;
  }

  .shell-body[data-layout-mode='wide-dual'] .section-shell__grid--split,
  .shell-body[data-layout-mode='wide-dual'] .section-shell__grid--pair {
    grid-template-columns: minmax(0, 1.14fr) minmax(18rem, 0.86fr);
  }

  .shell-body[data-layout-mode='wide-dual'] .section-shell__lead .section-intro,
  .shell-body[data-layout-mode='wide-dual'] .section-band--narrative .section-intro {
    max-width: min(60rem, 100%);
  }

  .shell-body[data-layout-mode='wide-dual'] .section-shell__lead .section-intro__title,
  .shell-body[data-layout-mode='wide-dual'] .section-band--narrative .section-intro__title {
    max-width: 30ch;
  }

  .shell-body[data-layout-mode='wide-dual'] .section-shell__lead .section-intro__summary,
  .shell-body[data-layout-mode='wide-dual'] .section-band--narrative .section-intro__summary {
    max-width: 78ch;
  }
}

@media (min-width: 64rem) {
  .shell-body[data-layout-mode='landscape-side'] .panel-frame--hero .panel-frame__layout--media {
    grid-template-columns: minmax(0, 1.16fr) minmax(20rem, 0.84fr);
    gap: clamp(1rem, 1.2vw, 1.55rem);
  }

  .shell-body[data-layout-mode='landscape-side'] .panel-frame__copy .page-head__title {
    max-width: 30ch;
  }

  .shell-body[data-layout-mode='landscape-side'] .panel-frame__copy .page-head__summary {
    max-width: 68ch;
  }

  .shell-body[data-layout-mode='landscape-side'] .section-shell__lead .section-intro__title,
  .shell-body[data-layout-mode='landscape-side'] .section-band--narrative .section-intro__title {
    max-width: 27ch;
  }

  .shell-body[data-layout-mode='landscape-side'] .section-shell__lead .section-intro__summary,
  .shell-body[data-layout-mode='landscape-side'] .section-band--narrative .section-intro__summary {
    max-width: 68ch;
  }
}

.shell-body[data-layout-mode='portrait-single'] .panel-frame__copy .page-head__title {
  max-width: 22ch;
}

.shell-body[data-layout-mode='portrait-single'] .panel-frame__copy .page-head__summary {
  max-width: 58ch;
}

.shell-body[data-layout-mode='portrait-single'] .section-shell__lead .section-intro__title,
.shell-body[data-layout-mode='portrait-single'] .section-band--narrative .section-intro__title {
  max-width: 22ch;
}

.shell-body[data-layout-mode='portrait-single'] .section-shell__lead .section-intro__summary,
.shell-body[data-layout-mode='portrait-single'] .section-band--narrative .section-intro__summary {
  max-width: 58ch;
}

/* Panel Card + Plate State Patch
   Cards own plates and plate text. Plates should breathe by state so
   node pills remain separated and route lines carry relationships. */
.panel-card--plate,
.panel-card--diagram {
  gap: clamp(0.95rem, 0.78rem + 0.55vw, 1.28rem);
  --panel-diagram-min-height: clamp(13.5rem, 20vw, 16.25rem);
  --panel-diagram-compact-min-height: clamp(11.5rem, 16vw, 13.5rem);
}

.panel-card--plate .panel-stack,
.panel-card--diagram .panel-stack,
.panel-card--plate .panel-card__content,
.panel-card--diagram .panel-card__content {
  gap: clamp(0.52rem, 0.45rem + 0.25vw, 0.75rem);
}

.panel-card--plate .panel-summary,
.panel-card--diagram .panel-summary,
.panel-card--plate .panel-chip-list,
.panel-card--diagram .panel-chip-list {
  margin-block-start: 0.08rem;
}

.panel-diagram__node,
.panel-diagram__focus {
  max-width: calc(100% - 1.4rem);
  cursor: default;
  pointer-events: none;
}

.panel-diagram__focus {
  max-width: calc(100% - 1.8rem);
}

/* Wide state: plates can spread horizontally but still keep node separation. */
.shell-body[data-layout-mode='wide-dual'] .panel-card--plate,
.shell-body[data-layout-mode='wide-dual'] .panel-card--diagram {
  gap: clamp(1rem, 0.85rem + 0.55vw, 1.35rem);
  --panel-diagram-min-height: clamp(13.2rem, 18vw, 16.5rem);
  --panel-diagram-compact-min-height: clamp(11.4rem, 14vw, 13.6rem);
}

/* Landscape/constrained state: add vertical room instead of compressing pills. */
.shell-body[data-layout-mode='landscape-side'] .panel-card--plate,
.shell-body[data-layout-mode='landscape-side'] .panel-card--diagram {
  gap: 1rem;
  --panel-diagram-min-height: clamp(14.25rem, 38vh, 17.5rem);
  --panel-diagram-compact-min-height: clamp(12.4rem, 31vh, 15.2rem);
}

.shell-body[data-layout-mode='landscape-side'] .panel-plate__field,
.shell-body[data-layout-mode='landscape-side'] .panel-instrument__field {
  min-height: var(--panel-diagram-min-height);
}

.shell-body[data-layout-mode='landscape-side'] .panel-plate__field--compact,
.shell-body[data-layout-mode='landscape-side'] .panel-instrument__field--compact {
  min-height: var(--panel-diagram-compact-min-height);
}

/* Portrait state: cards stack and plates get enough height for separated nodes. */
.shell-body[data-layout-mode='portrait-single'] .panel-card--plate,
.shell-body[data-layout-mode='portrait-single'] .panel-card--diagram {
  gap: 1.12rem;
  --panel-diagram-min-height: clamp(16.5rem, 68vw, 21rem);
  --panel-diagram-compact-min-height: clamp(14.5rem, 58vw, 18rem);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate__field,
.shell-body[data-layout-mode='portrait-single'] .panel-instrument__field {
  min-height: var(--panel-diagram-min-height);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate__field--compact,
.shell-body[data-layout-mode='portrait-single'] .panel-instrument__field--compact {
  min-height: var(--panel-diagram-compact-min-height);
}

.shell-body[data-layout-mode='portrait-single'] .panel-diagram__node,
.shell-body[data-layout-mode='portrait-single'] .panel-diagram__focus {
  font-size: clamp(0.7rem, 2.55vw, 0.82rem);
  min-height: 1.9rem;
  padding-inline: clamp(0.52rem, 1.7vw, 0.72rem);
}

/* Practice coordination: keep top specialties, central focus, and lower specialty distinct. */
.shell-body[data-layout-mode='landscape-side'] .practice-diagram--coordination .panel-diagram__node--neurology,
.shell-body[data-layout-mode='portrait-single'] .practice-diagram--coordination .panel-diagram__node--neurology {
  top: 12%;
  left: 7%;
}

.shell-body[data-layout-mode='landscape-side'] .practice-diagram--coordination .panel-diagram__node--psychiatry,
.shell-body[data-layout-mode='portrait-single'] .practice-diagram--coordination .panel-diagram__node--psychiatry {
  top: 12%;
  right: 7%;
}

.shell-body[data-layout-mode='landscape-side'] .practice-diagram--coordination .panel-diagram__focus,
.shell-body[data-layout-mode='portrait-single'] .practice-diagram--coordination .panel-diagram__focus {
  top: 47%;
  max-width: 82%;
  min-width: min(72%, 13.25rem);
}

.shell-body[data-layout-mode='landscape-side'] .practice-diagram--coordination .panel-diagram__node--neuropsychology,
.shell-body[data-layout-mode='portrait-single'] .practice-diagram--coordination .panel-diagram__node--neuropsychology {
  bottom: 11%;
}

/* Practice next-step route: three route labels should read as separate stops. */
.shell-body[data-layout-mode='landscape-side'] .practice-diagram--route .panel-diagram__node--services,
.shell-body[data-layout-mode='portrait-single'] .practice-diagram--route .panel-diagram__node--services {
  top: 13%;
  left: 8%;
}

.shell-body[data-layout-mode='landscape-side'] .practice-diagram--route .panel-diagram__focus,
.shell-body[data-layout-mode='portrait-single'] .practice-diagram--route .panel-diagram__focus {
  top: 45%;
}

.shell-body[data-layout-mode='landscape-side'] .practice-diagram--route .panel-diagram__node--contact,
.shell-body[data-layout-mode='portrait-single'] .practice-diagram--route .panel-diagram__node--contact {
  right: 8%;
  bottom: 12%;
}

/* About convergence: in narrow states, stack nodes above the focus to prevent collisions. */
.shell-body[data-layout-mode='portrait-single'] .about-diagram--convergence .panel-diagram__node--focused {
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
}

.shell-body[data-layout-mode='portrait-single'] .about-diagram--convergence .panel-diagram__node--review {
  top: 31%;
  left: 50%;
  transform: translateX(-50%);
}

.shell-body[data-layout-mode='portrait-single'] .about-diagram--convergence .panel-diagram__node--scope {
  top: 52%;
  bottom: auto;
  left: 50%;
  transform: translateX(-50%);
}

.shell-body[data-layout-mode='portrait-single'] .about-diagram--convergence .panel-diagram__focus {
  top: 79%;
  right: auto;
  left: 50%;
  transform: translate(-50%, -50%);
  width: auto;
  max-width: 82%;
}

/* Services lanes: keep lane nodes separated and move focus below on portrait. */
.shell-body[data-layout-mode='portrait-single'] .services-diagram--lanes .panel-diagram__node {
  left: 50%;
  transform: translateX(-50%);
  min-width: min(82%, 14rem);
  justify-content: center;
}

.shell-body[data-layout-mode='portrait-single'] .services-diagram--lanes .panel-diagram__node--neurology { top: 7%; }
.shell-body[data-layout-mode='portrait-single'] .services-diagram--lanes .panel-diagram__node--psychiatry { top: 23%; }
.shell-body[data-layout-mode='portrait-single'] .services-diagram--lanes .panel-diagram__node--neuropsychology { top: 39%; }
.shell-body[data-layout-mode='portrait-single'] .services-diagram--lanes .panel-diagram__node--multidisciplinary { top: 55%; }

.shell-body[data-layout-mode='portrait-single'] .services-diagram--lanes .panel-diagram__focus {
  top: 80%;
  right: auto;
  left: 50%;
  transform: translate(-50%, -50%);
  width: auto;
  max-width: 82%;
}

/* Clinician route: preserve a clear entry → choice → route spacing. */
.shell-body[data-layout-mode='portrait-single'] .clinicians-diagram--route .panel-diagram__node--entry {
  top: 12%;
  left: 50%;
  transform: translateX(-50%);
}

.shell-body[data-layout-mode='portrait-single'] .clinicians-diagram--route .panel-diagram__focus {
  top: 45%;
  min-width: min(72%, 10rem);
}

.shell-body[data-layout-mode='portrait-single'] .clinicians-diagram--route .panel-diagram__node--contact {
  top: auto;
  bottom: 20%;
  right: auto;
  left: 18%;
}

.shell-body[data-layout-mode='portrait-single'] .clinicians-diagram--route .panel-diagram__node--secure {
  bottom: 8%;
  right: 18%;
}

/* Very narrow devices: prioritize vertical spacing over compactness. */
@media (max-width: 420px) {
  .shell-body[data-layout-mode='portrait-single'] .panel-card--plate,
  .shell-body[data-layout-mode='portrait-single'] .panel-card--diagram {
    --panel-diagram-min-height: clamp(17.25rem, 78vw, 22rem);
    --panel-diagram-compact-min-height: clamp(15.25rem, 68vw, 19rem);
  }

  .shell-body[data-layout-mode='portrait-single'] .practice-diagram--coordination .panel-diagram__node--neurology { left: 4%; }
  .shell-body[data-layout-mode='portrait-single'] .practice-diagram--coordination .panel-diagram__node--psychiatry { right: 4%; }

  .shell-body[data-layout-mode='portrait-single'] .panel-diagram__node,
  .shell-body[data-layout-mode='portrait-single'] .panel-diagram__focus {
    letter-spacing: -0.018em;
  }
}


/* =========================================================
   Legacy Panel Plate Template Compatibility
   Detailed template visuals now live in css/panel-plates.css.
   Convergence pass: plate diagrams are declared templates,
   not hand-positioned art.

   Template contract:
   - Cards own plates and plate text.
   - Plates own diagram structure.
   - Templates own node slots and route grammar.
   - Routes express relationships between slots.
   ========================================================= */

.panel-plate__routes,
.panel-diagram__routes {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.panel-plate__routes [data-route-state] {
  display: none;
}

.panel-plate__routes [data-route-state='wide'] {
  display: block;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate__routes [data-route-state='wide'] {
  display: none;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate__routes [data-route-state='portrait'] {
  display: block;
}

.panel-plate__ring,
.panel-plate__route,
.panel-diagram__ring,
.panel-diagram__route {
  fill: none;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.panel-plate__ring,
.panel-diagram__ring {
  stroke: rgba(78, 122, 148, 0.135);
  stroke-width: 1.05;
  stroke-dasharray: 5 7;
}

.panel-plate__route,
.panel-diagram__route {
  stroke-width: 1.8;
  opacity: 0.84;
}

.panel-plate__route--soft,
.panel-diagram__route--soft {
  stroke: var(--panel-diagram-route-soft);
}

.panel-plate__route--accent,
.panel-diagram__route--accent {
  stroke: var(--panel-diagram-route-accent);
  stroke-width: 2.05;
  opacity: 0.9;
}

.panel-plate-template[data-plate-template] {
  --panel-plate-slot-edge: 8%;
  --panel-plate-slot-top: 15%;
  --panel-plate-slot-bottom: 13%;
  --panel-plate-focus-width: min(72%, 13.75rem);
}

.panel-plate-template[data-plate-template] .panel-plate__node,
.panel-plate-template[data-plate-template] .panel-plate__focus,
.panel-plate-template[data-plate-template] .panel-diagram__node,
.panel-plate-template[data-plate-template] .panel-diagram__focus {
  right: auto;
  bottom: auto;
  left: auto;
  top: auto;
  width: auto;
  min-width: auto;
  max-width: calc(100% - 1.25rem);
  transform: none;
  cursor: default;
  pointer-events: none;
  white-space: nowrap;
}

.panel-plate-template[data-plate-template] .panel-plate__focus,
.panel-plate-template[data-plate-template] .panel-diagram__focus {
  max-width: min(84%, 14rem);
}

/* Convergence template: input-a + input-b + input-c held by focus. */
.panel-plate-template[data-plate-template='convergence'] [data-node='input-a'] {
  top: var(--panel-plate-slot-top);
  left: var(--panel-plate-slot-edge);
}

.panel-plate-template[data-plate-template='convergence'] [data-node='input-b'] {
  top: var(--panel-plate-slot-top);
  right: var(--panel-plate-slot-edge);
}

.panel-plate-template[data-plate-template='convergence'] [data-node='focus'] {
  top: 50%;
  left: 50%;
  min-width: var(--panel-plate-focus-width);
  transform: translate(-50%, -50%);
}

.panel-plate-template[data-plate-template='convergence'] [data-node='input-c'] {
  bottom: var(--panel-plate-slot-bottom);
  left: 50%;
  transform: translateX(-50%);
}

/* Route template: start → decision → action(s). */
.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'] {
  top: 50%;
  left: 8%;
  transform: translateY(-50%);
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'] {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'] {
  top: 50%;
  right: 8%;
  transform: translateY(-50%);
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='start'] {
  top: 50%;
  left: 8%;
  transform: translateY(-50%);
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='decision'] {
  top: 50%;
  left: 50%;
  min-width: min(50%, 9.5rem);
  transform: translate(-50%, -50%);
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'] {
  top: 18%;
  right: 8%;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] {
  bottom: 18%;
  right: 8%;
}

/* Lanes template: lane stack feeds destination. */
.panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
  left: 8%;
  justify-content: flex-start;
  min-width: min(56%, 13.75rem);
}

.panel-plate-template[data-plate-template='lanes'] [data-node='lane-1'] { top: 12%; }
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-2'] { top: 31%; }
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-3'] { top: 50%; }
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-4'] { top: 69%; }

.panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
  top: 43%;
  right: 8%;
  width: min(36%, 9.7rem);
  white-space: normal;
  transform: translateY(-50%);
}

/* Landscape state: keep structure, add a little breathing room. */
.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template='convergence'] {
  --panel-plate-slot-edge: 7%;
  --panel-plate-slot-top: 12%;
  --panel-plate-slot-bottom: 10%;
  --panel-plate-focus-width: min(76%, 13.25rem);
}

.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
  min-width: min(58%, 13.5rem);
}

/* Portrait state: recompose diagrams, don't squeeze them. */
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] {
  --panel-plate-focus-width: min(82%, 13.5rem);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-plate__node,
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-plate__focus,
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-diagram__node,
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-diagram__focus {
  max-width: min(86%, 14rem);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'] [data-node='input-a'] {
  top: 10%;
  left: 8%;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'] [data-node='input-b'] {
  top: 10%;
  right: 8%;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'] [data-node='focus'] {
  top: 48%;
  left: 50%;
  min-width: var(--panel-plate-focus-width);
  transform: translate(-50%, -50%);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'] [data-node='input-c'] {
  top: auto;
  bottom: 9%;
  left: 50%;
  transform: translateX(-50%);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'] {
  top: 14%;
  left: 50%;
  transform: translateX(-50%);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'] {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'] {
  top: auto;
  bottom: 12%;
  right: auto;
  left: 50%;
  transform: translateX(-50%);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='start'] {
  top: 12%;
  left: 50%;
  transform: translateX(-50%);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='decision'] {
  top: 45%;
  left: 50%;
  min-width: min(72%, 10rem);
  transform: translate(-50%, -50%);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'] {
  top: auto;
  bottom: 18%;
  right: auto;
  left: 8%;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] {
  top: auto;
  bottom: 7%;
  right: 8%;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
  left: 50%;
  min-width: min(84%, 14rem);
  justify-content: center;
  transform: translateX(-50%);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-1'] { top: 7%; }
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-2'] { top: 23%; }
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-3'] { top: 39%; }
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-4'] { top: 55%; }

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
  top: auto;
  bottom: 8%;
  right: auto;
  left: 50%;
  width: auto;
  max-width: min(84%, 14rem);
  transform: translateX(-50%);
}

@media (max-width: 420px) {
  .shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'] [data-node='input-a'] { left: 4%; }
  .shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'] [data-node='input-b'] { right: 4%; }

  .shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'] { left: 5%; }
  .shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] { right: 5%; }
}

/* ========================================================================== 
   V3 PLATE HANDOFF GUARD

   panel-system.css may load after panel-plates.css inside old platform aggregate.
   Keep this guard last so old page-specific diagram rules cannot re-stretch
   labels or move them away from their route geometry.
   ========================================================================== */

:root {
  --plate-v3-node-pad-x: clamp(0.62rem, 0.54rem + 0.22vw, 0.84rem);
  --plate-v3-node-pad-y: 0.36rem;
  --plate-v3-node-min-h: 1.86rem;
  --plate-v3-node-max: min(15rem, calc(100% - 1.4rem));
  --plate-v3-bar-width: min(72%, 15.5rem);
  --plate-v3-route-soft: rgba(129, 151, 159, 0.34);
  --plate-v3-route-accent: rgba(164, 132, 72, 0.44);
}

body.shell-body .panel-plate-template[data-plate-template] .panel-plate__node[data-node],
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__node[data-node],
body.shell-body .panel-plate-template[data-plate-template] .panel-plate__focus[data-node],
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__focus[data-node],
.panel-plate-template[data-plate-template] .panel-plate__node[data-node],
.panel-plate-template[data-plate-template] .panel-diagram__node[data-node],
.panel-plate-template[data-plate-template] .panel-plate__focus[data-node],
.panel-plate-template[data-plate-template] .panel-diagram__focus[data-node] {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  inline-size: fit-content !important;
  width: fit-content !important;
  min-inline-size: 0 !important;
  min-width: 0 !important;
  max-inline-size: var(--plate-v3-node-max) !important;
  max-width: var(--plate-v3-node-max) !important;
  min-block-size: var(--plate-v3-node-min-h) !important;
  min-height: var(--plate-v3-node-min-h) !important;
  padding: var(--plate-v3-node-pad-y) var(--plate-v3-node-pad-x) !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

body.shell-body .panel-plate-template[data-plate-template] [data-node-shape='bar'],
.panel-plate-template[data-plate-template] [data-node-shape='bar'] {
  inline-size: var(--plate-v3-bar-width) !important;
  width: var(--plate-v3-bar-width) !important;
  max-inline-size: var(--plate-v3-bar-width) !important;
  max-width: var(--plate-v3-bar-width) !important;
  justify-content: flex-start !important;
}

body.shell-body .panel-plate-template[data-plate-template] [data-node] {
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
}

body.shell-body[data-layout-mode='wide-dual'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='wide'],
body.shell-body[data-layout-mode='wide-dual'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='wide'],
body.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='wide'],
body.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='wide'] { display: block !important; }

body.shell-body[data-layout-mode='wide-dual'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='portrait'],
body.shell-body[data-layout-mode='wide-dual'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='portrait'],
body.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='portrait'],
body.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='portrait'] { display: none !important; }

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='wide'],
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='wide'] { display: none !important; }

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='portrait'],
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='portrait'] { display: block !important; }

body.shell-body .panel-plate-template[data-plate-template] .panel-plate__route,
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__route {
  vector-effect: non-scaling-stroke !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 2.15 !important;
  opacity: 0.82 !important;
}

body.shell-body .panel-plate-template[data-plate-template] .panel-plate__route--soft,
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__route--soft { stroke: var(--plate-v3-route-soft) !important; }

body.shell-body .panel-plate-template[data-plate-template] .panel-plate__route--accent,
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__route--accent,
body.shell-body .panel-plate-template[data-plate-template] .panel-plate__route--spine,
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__route--spine { stroke: var(--plate-v3-route-accent) !important; }

body.shell-body .panel-plate-template[data-plate-template] .panel-plate__ring,
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__ring {
  stroke: rgba(129, 151, 159, 0.22) !important;
  stroke-width: 1.25 !important;
  opacity: 0.62 !important;
}

body.shell-body .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] { min-height: 14.9rem !important; }
body.shell-body .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-a'] { top: 28% !important; left: 31% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-b'] { top: 28% !important; left: 69% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='focus'] { top: 51% !important; left: 50% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-c'] { top: 76% !important; left: 50% !important; transform: translate(-50%, -50%) !important; }

body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] { min-height: 10.8rem !important; }
body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'] { top: 50% !important; left: 31% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'] { top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'] { top: 50% !important; left: 77% !important; transform: translate(-50%, -50%) !important; }

body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] { min-height: 14.2rem !important; }
body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='start'] { top: 50% !important; left: 30% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='decision'] { top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'] { top: 26% !important; left: 78% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] { top: 76% !important; left: 78% !important; transform: translate(-50%, -50%) !important; }

body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] { min-height: 16.2rem !important; }
body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-1'] { top: 19% !important; left: 34% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-2'] { top: 37% !important; left: 34% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-3'] { top: 56% !important; left: 34% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-4'] { top: 75% !important; left: 34% !important; transform: translate(-50%, -50%) !important; }
body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='destination'] { top: 48% !important; left: 75% !important; transform: translate(-50%, -50%) !important; }

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-a'] { top: 24% !important; left: 29% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-b'] { top: 24% !important; left: 71% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='focus'] { top: 51% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-c'] { top: 81% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'] { top: 28% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'] { top: 54% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'] { top: 81% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='start'] { top: 23% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='decision'] { top: 54% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'] { top: 80% !important; left: 33% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] { top: 80% !important; left: 67% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-1'] { top: 20% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-2'] { top: 34% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-3'] { top: 48% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-4'] { top: 62% !important; left: 50% !important; }
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='destination'] { top: 83% !important; left: 50% !important; }

/* ========================================================================== 
   PLATE SYSTEM V5 — ANCHOR MAP MIRROR
   This block exists only to close old panel-system/page-specific placement
   authority. It mirrors the final anchor map from panel-plates.css without a
   global reset and without resizing bubbles into slots.
   ========================================================================== */

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template][data-plate-variant] .panel-plate__node,
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template][data-plate-variant] .panel-diagram__node,
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template][data-plate-variant] .panel-plate__focus,
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template][data-plate-variant] .panel-diagram__focus {
  position: absolute !important;
  inline-size: fit-content !important;
  width: fit-content !important;
  min-inline-size: 0 !important;
  max-inline-size: min(14rem, calc(100% - 1.6rem)) !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] {
  min-height: 14.8rem !important;
  --anchor-start-x: 24%; --anchor-start-y: 50%;
  --anchor-decision-x: 51%; --anchor-decision-y: 50%;
  --anchor-action-a-x: 78%; --anchor-action-a-y: 26%;
  --anchor-action-b-x: 78%; --anchor-action-b-y: 76%;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] {
  min-height: 12.4rem !important;
  --anchor-start-x: 18%; --anchor-start-y: 50%;
  --anchor-decision-x: 50%; --anchor-decision-y: 50%;
  --anchor-action-a-x: 82%; --anchor-action-a-y: 50%;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='convergence'] {
  min-height: 15.2rem !important;
  --anchor-input-a-x: 28%; --anchor-input-a-y: 16%;
  --anchor-input-b-x: 72%; --anchor-input-b-y: 16%;
  --anchor-focus-x: 50%; --anchor-focus-y: 52%;
  --anchor-input-c-x: 50%; --anchor-input-c-y: 82%;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] {
  min-height: 17rem !important;
  --anchor-lane-1-x: 25%; --anchor-lane-1-y: 14%;
  --anchor-lane-2-x: 25%; --anchor-lane-2-y: 32%;
  --anchor-lane-3-x: 25%; --anchor-lane-3-y: 50%;
  --anchor-lane-4-x: 25%; --anchor-lane-4-y: 68%;
  --anchor-destination-x: 76%; --anchor-destination-y: 50%;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node^='lane-']:not([data-node-shape='bar']) {
  inline-size: fit-content !important;
  width: fit-content !important;
  min-inline-size: 0 !important;
  max-inline-size: min(14rem, calc(100% - 1.6rem)) !important;
  justify-content: center !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant] [data-node='start'] { top: var(--anchor-start-y) !important; left: var(--anchor-start-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant] [data-node='decision'] { top: var(--anchor-decision-y) !important; left: var(--anchor-decision-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant] [data-node='action-a'] { top: var(--anchor-action-a-y) !important; left: var(--anchor-action-a-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant] [data-node='action-b'] { top: var(--anchor-action-b-y) !important; left: var(--anchor-action-b-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='convergence'] [data-node='input-a'] { top: var(--anchor-input-a-y) !important; left: var(--anchor-input-a-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='convergence'] [data-node='input-b'] { top: var(--anchor-input-b-y) !important; left: var(--anchor-input-b-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='convergence'] [data-node='focus'] { top: var(--anchor-focus-y) !important; left: var(--anchor-focus-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='convergence'] [data-node='input-c'] { top: var(--anchor-input-c-y) !important; left: var(--anchor-input-c-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-1'] { top: var(--anchor-lane-1-y) !important; left: var(--anchor-lane-1-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-2'] { top: var(--anchor-lane-2-y) !important; left: var(--anchor-lane-2-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-3'] { top: var(--anchor-lane-3-y) !important; left: var(--anchor-lane-3-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-4'] { top: var(--anchor-lane-4-y) !important; left: var(--anchor-lane-4-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node='destination'] { top: var(--anchor-destination-y) !important; left: var(--anchor-destination-x) !important; right: auto !important; bottom: auto !important; transform: translate(-50%, -50%) !important; }

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] {
  min-height: 15rem !important;
  --anchor-start-x: 50%; --anchor-start-y: 16%;
  --anchor-decision-x: 50%; --anchor-decision-y: 46%;
  --anchor-action-a-x: 28%; --anchor-action-a-y: 80%;
  --anchor-action-b-x: 72%; --anchor-action-b-y: 80%;
}
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] {
  min-height: 12.8rem !important;
  --anchor-start-x: 50%; --anchor-start-y: 16%;
  --anchor-decision-x: 50%; --anchor-decision-y: 50%;
  --anchor-action-a-x: 50%; --anchor-action-a-y: 84%;
}
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'] {
  min-height: 16.2rem !important;
  --anchor-input-a-x: 50%; --anchor-input-a-y: 14%;
  --anchor-input-b-x: 50%; --anchor-input-b-y: 32%;
  --anchor-focus-x: 50%; --anchor-focus-y: 55%;
  --anchor-input-c-x: 50%; --anchor-input-c-y: 82%;
}
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] {
  min-height: 18.2rem !important;
  --anchor-lane-1-x: 50%; --anchor-lane-1-y: 11%;
  --anchor-lane-2-x: 50%; --anchor-lane-2-y: 27%;
  --anchor-lane-3-x: 50%; --anchor-lane-3-y: 43%;
  --anchor-lane-4-x: 50%; --anchor-lane-4-y: 59%;
  --anchor-destination-x: 50%; --anchor-destination-y: 81%;
}

/* =========================================================
   Plate Geometry Handoff — V8
   panel-system.css keeps card/surface ownership. Compiled plate
   geometry is controlled by panel-plates.css + plate-system.js.
   These guards prevent old fallback diagram rules from winning after
   the plate system has compiled a field.
   ========================================================= */

.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-diagram__node,
.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-diagram__focus,
.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-plate__node,
.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-plate__focus {
  position: absolute !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__nodes > [data-anchor='center'] {
  left: var(--plate-node-x) !important;
  top: var(--plate-node-y) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__nodes > [data-anchor='start'] {
  left: var(--plate-node-x) !important;
  top: var(--plate-node-y) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__nodes > [data-anchor='end'] {
  right: calc(100% - var(--plate-node-x)) !important;
  top: var(--plate-node-y) !important;
  left: auto !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
}

/* =========================================================
   Spatial Engine Round 2 — Ownership Annotation

   Panels remain scene/context surfaces. Media bays own images. Cards own plate
   text and plates. Registered spatial behavior is opt-in through child systems
   such as the plate adapter; this file does not create placement authority.
   ========================================================= */
.panel-card:has(.panel-plate-template[data-spatial-object='plate']) {
  --panel-card-spatial-client: plate;
}

/* ---- admitted safe source: css/panel-plates.css ---- */
/* panel-plates.css
   Plate Visual Correction Pass

   Purpose:
   - Keep panel/card/media-bay architecture stable.
   - Move diagram plate visual grammar out of panel-system.css.
   - Make plate diagrams readable, state-aware, and template-driven.

   Contract:
   - Cards own plates and plate text.
   - Plates own diagram templates.
   - Nodes are flat labels, not CTAs.
   - Routes communicate structure; they are not decorative scratches.
*/

:root {
  --plate-field-radius: 1.08rem;
  --plate-field-inset: clamp(0.72rem, 0.55rem + 0.55vw, 1rem);
  --plate-field-min: 14rem;
  --plate-field-compact-min: 12.5rem;
  --plate-node-min-block: 2.12rem;
  --plate-node-pad-x: clamp(0.72rem, 0.58rem + 0.42vw, 0.96rem);
  --plate-node-pad-y: 0.42rem;
  --plate-node-gap: 0.64rem;
  --plate-node-radius: 999px;
  --plate-node-font: clamp(0.76rem, 0.68rem + 0.35vw, 0.92rem);
  --plate-node-ink: var(--syn-identity, var(--color-title, #132947));
  --plate-node-border-strong: color-mix(in srgb, var(--syn-identity, #132947) 18%, transparent);
  --plate-node-border-soft: color-mix(in srgb, var(--syn-identity, #132947) 12%, transparent);
  --plate-node-surface-top: rgba(255, 255, 255, 0.995);
  --plate-node-surface-bottom: rgba(238, 246, 248, 0.975);
  --plate-focus-surface-top: rgba(255, 255, 255, 0.995);
  --plate-focus-surface-bottom: rgba(249, 247, 239, 0.975);
  --plate-focus-border: var(--syn-casing, rgba(164, 132, 72, 0.24));
  --plate-dot-teal: var(--syn-action-line, rgba(68, 151, 155, 0.26));
  --plate-dot-gold: var(--syn-casing, rgba(164, 132, 72, 0.25));
  --plate-route-soft: color-mix(in srgb, var(--syn-identity, #132947) 22%, var(--syn-glass, #e5eef1));
  --plate-route-accent: var(--syn-bridge-soft, rgba(44, 141, 143, 0.50));
  --plate-route-width: 2.8;
}

/* Canonical plate surface -------------------------------------------------- */
.panel-card--plate,
.panel-card--diagram {
  gap: clamp(0.9rem, 0.72rem + 0.58vw, 1.22rem);
}

.panel-card--plate .panel-card__content,
.panel-card--diagram .panel-card__content,
.panel-card--plate .panel-stack,
.panel-card--diagram .panel-stack {
  gap: clamp(0.48rem, 0.35rem + 0.35vw, 0.72rem);
}

.panel-plate--diagram {
  overflow: visible;
  border-radius: calc(var(--plate-field-radius) + 0.18rem);
}

.panel-plate-template[data-plate-template],
.panel-plate__field.panel-plate-template[data-plate-template],
.panel-instrument__field.panel-plate-template[data-plate-template] {
  container-type: inline-size;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: var(--plate-field-min) !important;
  padding: var(--plate-field-inset);
  border-radius: var(--plate-field-radius);
  background:
    radial-gradient(circle at 24% 12%, rgba(255, 255, 255, 0.96), transparent 32%),
    radial-gradient(circle at 78% 86%, rgba(126, 181, 187, 0.13), transparent 34%),
    linear-gradient(180deg, rgba(250, 253, 253, 0.99), rgba(236, 246, 248, 0.965));
}

.panel-plate-template[data-plate-density='compact'] {
  min-height: var(--plate-field-compact-min) !important;
}

.panel-plate-template[data-plate-template]::before {
  inset: 0.72rem !important;
  border-radius: calc(var(--plate-field-radius) - 0.18rem) !important;
  border-color: rgba(33, 95, 134, 0.095) !important;
}

.panel-plate-template[data-plate-template]::after {
  opacity: 0.28 !important;
}

/* Route layer -------------------------------------------------------------- */
.panel-plate-template[data-plate-template] .panel-plate__routes,
.panel-plate-template[data-plate-template] .panel-diagram__routes {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
}

.panel-plate-template[data-plate-template] .panel-plate__ring,
.panel-plate-template[data-plate-template] .panel-diagram__ring {
  stroke: rgba(73, 114, 139, 0.16);
  stroke-width: 1.4;
  opacity: 0.58;
}

.panel-plate-template[data-plate-template] .panel-plate__route,
.panel-plate-template[data-plate-template] .panel-diagram__route {
  fill: none;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: var(--plate-route-width);
  opacity: 0.88;
}

.panel-plate-template[data-plate-template] .panel-plate__route--soft,
.panel-plate-template[data-plate-template] .panel-diagram__route--soft {
  stroke: var(--plate-route-soft);
}

.panel-plate-template[data-plate-template] .panel-plate__route--accent,
.panel-plate-template[data-plate-template] .panel-diagram__route--accent,
.panel-plate-template[data-plate-template] .panel-plate__route--spine,
.panel-plate-template[data-plate-template] .panel-diagram__route--spine {
  stroke: var(--plate-route-accent);
}

.panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='wide'] {
  display: none;
}

.panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='portrait'] {
  display: block;
}

/* Nodes -------------------------------------------------------------------- */
.panel-plate-template[data-plate-template] .panel-plate__node,
.panel-plate-template[data-plate-template] .panel-plate__focus,
.panel-plate-template[data-plate-template] .panel-diagram__node,
.panel-plate-template[data-plate-template] .panel-diagram__focus {
  box-sizing: border-box;
  position: absolute !important;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  min-block-size: var(--plate-node-min-block);
  max-inline-size: calc(100% - 1.4rem);
  padding: var(--plate-node-pad-y) var(--plate-node-pad-x);
  border-radius: var(--plate-node-radius);
  border: 1px solid var(--plate-node-border-strong);
  background: linear-gradient(180deg, var(--plate-node-surface-top), var(--plate-node-surface-bottom));
  box-shadow:
    0 0.24rem 0.6rem rgba(17, 37, 61, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.72);
  color: var(--plate-node-ink);
  font-family: var(--font-ui);
  font-size: var(--plate-node-font);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.012em;
  line-height: 1.12;
  text-align: center;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  cursor: default;
  pointer-events: none;
}

.panel-plate-template[data-plate-template] .panel-plate__node::before,
.panel-plate-template[data-plate-template] .panel-plate__focus::before,
.panel-plate-template[data-plate-template] .panel-diagram__node::before,
.panel-plate-template[data-plate-template] .panel-diagram__focus::before {
  content: "";
  flex: 0 0 0.48rem;
  inline-size: 0.48rem;
  block-size: 0.48rem;
  border-radius: 999px;
  border: 2px solid rgba(255, 255, 255, 0.68);
  background: var(--plate-dot-teal);
  box-shadow: 0 0 0 1px rgba(68, 151, 155, 0.08);
}

.panel-plate-template[data-plate-template] .panel-plate__focus,
.panel-plate-template[data-plate-template] .panel-diagram__focus {
  min-block-size: calc(var(--plate-node-min-block) + 0.16rem);
  border-color: var(--plate-focus-border);
  background: linear-gradient(180deg, var(--plate-focus-surface-top), var(--plate-focus-surface-bottom));
  box-shadow:
    0 0.3rem 0.72rem rgba(17, 37, 61, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.panel-plate-template[data-plate-template] .panel-plate__focus::before,
.panel-plate-template[data-plate-template] .panel-diagram__focus::before {
  background: var(--plate-dot-gold);
  box-shadow: 0 0 0 1px rgba(164, 132, 72, 0.10);
}

/* Default templates: small/container-first layouts ------------------------ */
.panel-plate-template[data-plate-template='convergence'] {
  --plate-field-min: 16rem;
}

.panel-plate-template[data-plate-template='convergence'] [data-node='input-a'] {
  inset-block-start: 8% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
  inline-size: min(82%, 14.5rem) !important;
}

.panel-plate-template[data-plate-template='convergence'] [data-node='input-b'] {
  inset-block-start: 25% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
  inline-size: min(82%, 14.5rem) !important;
}

.panel-plate-template[data-plate-template='convergence'] [data-node='focus'] {
  inset-block-start: 50% !important;
  inset-inline-start: 50% !important;
  transform: translate(-50%, -50%) !important;
  inline-size: min(86%, 16rem) !important;
}

.panel-plate-template[data-plate-template='convergence'] [data-node='input-c'] {
  inset-block-end: 10% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
  inline-size: min(76%, 13.5rem) !important;
}

.panel-plate-template[data-plate-template='route'] {
  --plate-field-compact-min: 14.25rem;
  --plate-field-min: 15.25rem;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'] {
  inset-block-start: 13% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
  inline-size: min(80%, 13rem) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'] {
  inset-block-start: 47% !important;
  inset-inline-start: 50% !important;
  transform: translate(-50%, -50%) !important;
  inline-size: min(62%, 10rem) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'] {
  inset-block-end: 13% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
  inline-size: min(72%, 11.5rem) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] {
  --plate-field-min: 16rem;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='start'] {
  inset-block-start: 9% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
  inline-size: min(62%, 11rem) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='decision'] {
  inset-block-start: 44% !important;
  inset-inline-start: 50% !important;
  transform: translate(-50%, -50%) !important;
  inline-size: min(78%, 14rem) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'] {
  inset-block-end: 10% !important;
  inset-inline-start: 28% !important;
  transform: translateX(-50%) !important;
  inline-size: min(46%, 10.8rem) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] {
  inset-block-end: 10% !important;
  inset-inline-start: 72% !important;
  transform: translateX(-50%) !important;
  inline-size: min(42%, 10.2rem) !important;
}

.panel-plate-template[data-plate-template='lanes'] {
  --plate-field-min: 17.4rem;
}

.panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
  inline-size: min(86%, 17rem) !important;
  justify-content: flex-start;
}

.panel-plate-template[data-plate-template='lanes'] [data-node='lane-1'] { inset-block-start: 8% !important; }
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-2'] { inset-block-start: 23% !important; }
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-3'] { inset-block-start: 38% !important; }
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-4'] { inset-block-start: 53% !important; }

.panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
  inset-block-end: 7% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
  inline-size: min(74%, 14rem) !important;
}

/* Container-aware recomposition ------------------------------------------ */
@container (min-width: 29rem) {
  .panel-plate-template[data-plate-template='convergence'] {
    --plate-field-min: 14.5rem;
  }

  .panel-plate-template[data-plate-template='convergence'] [data-node='input-a'] {
    inset-block-start: 14% !important;
    inset-inline-start: 27% !important;
    transform: translateX(-50%) !important;
    inline-size: min(42%, 13rem) !important;
  }

  .panel-plate-template[data-plate-template='convergence'] [data-node='input-b'] {
    inset-block-start: 14% !important;
    inset-inline-start: 73% !important;
    transform: translateX(-50%) !important;
    inline-size: min(42%, 13rem) !important;
  }

  .panel-plate-template[data-plate-template='convergence'] [data-node='focus'] {
    inset-block-start: 51% !important;
    inset-inline-start: 50% !important;
    transform: translate(-50%, -50%) !important;
    inline-size: min(78%, 16rem) !important;
  }

  .panel-plate-template[data-plate-template='convergence'] [data-node='input-c'] {
    inset-block-end: 12% !important;
    inset-inline-start: 50% !important;
    transform: translateX(-50%) !important;
    inline-size: min(55%, 13.5rem) !important;
  }

  .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] {
    --plate-field-compact-min: 11.8rem;
  }

  .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'] {
    inset-block-start: 50% !important;
    inset-inline-start: 22% !important;
    transform: translate(-50%, -50%) !important;
    inline-size: min(31%, 10.5rem) !important;
  }

  .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'] {
    inset-block-start: 50% !important;
    inset-inline-start: 50% !important;
    transform: translate(-50%, -50%) !important;
    inline-size: min(25%, 9rem) !important;
  }

  .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'] {
    inset-block-end: auto !important;
    inset-block-start: 50% !important;
    inset-inline-start: 78% !important;
    transform: translate(-50%, -50%) !important;
    inline-size: min(28%, 9.8rem) !important;
  }

  .panel-plate-template[data-plate-template='lanes'] {
    --plate-field-min: 15.2rem;
  }

  .panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
    inset-inline-start: 8% !important;
    transform: none !important;
    inline-size: min(58%, 16rem) !important;
  }

  .panel-plate-template[data-plate-template='lanes'] [data-node='lane-1'] { inset-block-start: 10% !important; }
  .panel-plate-template[data-plate-template='lanes'] [data-node='lane-2'] { inset-block-start: 28% !important; }
  .panel-plate-template[data-plate-template='lanes'] [data-node='lane-3'] { inset-block-start: 46% !important; }
  .panel-plate-template[data-plate-template='lanes'] [data-node='lane-4'] { inset-block-start: 64% !important; }

  .panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
    inset-block-start: 42% !important;
    inset-block-end: auto !important;
    inset-inline-start: 77% !important;
    transform: translate(-50%, -50%) !important;
    inline-size: min(35%, 10rem) !important;
  }

  .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='wide'] {
    display: block;
  }

  .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='portrait'] {
    display: none;
  }
}

/* Shell state refinements -------------------------------------------------- */
.shell-body[data-layout-mode='wide-dual'] .panel-card--plate,
.shell-body[data-layout-mode='wide-dual'] .panel-card--diagram {
  gap: clamp(0.95rem, 0.7rem + 0.55vw, 1.25rem);
}

.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template] {
  --plate-node-font: clamp(0.72rem, 0.62rem + 0.32vw, 0.86rem);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] {
  --plate-node-font: clamp(0.76rem, 2.45vw, 0.92rem);
  --plate-field-inset: clamp(0.72rem, 2.4vw, 0.95rem);
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-density='compact'] {
  min-height: 14.8rem !important;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'] {
  min-height: 16.5rem !important;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] {
  min-height: 18.4rem !important;
}

/* Extra-narrow safety. Prevent clipped labels before preserving geometry. */
@media (max-width: 25rem) {
  .panel-plate-template[data-plate-template] .panel-plate__node,
  .panel-plate-template[data-plate-template] .panel-plate__focus,
  .panel-plate-template[data-plate-template] .panel-diagram__node,
  .panel-plate-template[data-plate-template] .panel-diagram__focus {
    --plate-node-pad-x: 0.68rem;
    font-size: clamp(0.72rem, 2.75vw, 0.84rem);
  }

  .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'],
  .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] {
    inline-size: min(47%, 9.8rem) !important;
  }

  .panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
    inline-size: min(90%, 16rem) !important;
  }
}

/* Plate text boundary. */
.panel-card--plate .panel-kicker,
.panel-card--diagram .panel-kicker {
  margin-block-start: 0.1rem;
}

.panel-card--plate .panel-summary,
.panel-card--diagram .panel-summary {
  max-width: 42rem;
}

/* =========================================================
   Plate Node Reset + Dull Gold Relationship Lines Patch

   Purpose:
   - Normalize route/convergence node capsules so they size to their text,
     rather than stretching into oblong slot shapes.
   - Keep lane labels as intentional lane bars only inside lane templates.
   - Use muted shell-gold for relationship lines only.
   ========================================================= */

:root {
  --plate-route-gold-soft: rgba(164, 132, 72, 0.22);
  --plate-route-gold: rgba(164, 132, 72, 0.36);
  --plate-route-gold-strong: rgba(164, 132, 72, 0.46);
  --plate-route-soft: var(--plate-route-gold-soft);
  --plate-route-accent: var(--plate-route-gold);
}

.panel-plate-template[data-plate-template] .panel-plate__route,
.panel-plate-template[data-plate-template] .panel-diagram__route {
  stroke: var(--plate-route-gold-soft) !important;
  stroke-width: 2.55 !important;
  opacity: 0.86 !important;
}

.panel-plate-template[data-plate-template] .panel-plate__route--accent,
.panel-plate-template[data-plate-template] .panel-diagram__route--accent,
.panel-plate-template[data-plate-template] .panel-plate__route--spine,
.panel-plate-template[data-plate-template] .panel-diagram__route--spine {
  stroke: var(--plate-route-gold) !important;
  stroke-width: 2.75 !important;
  opacity: 0.92 !important;
}

.panel-plate-template[data-plate-template='route'] .panel-plate__route--accent,
.panel-plate-template[data-plate-template='route'] .panel-diagram__route--accent {
  stroke: var(--plate-route-gold-strong) !important;
}

.panel-plate-template[data-plate-template] .panel-plate__ring,
.panel-plate-template[data-plate-template] .panel-diagram__ring {
  stroke: rgba(73, 114, 139, 0.15) !important;
  opacity: 0.52 !important;
}

.panel-plate-template[data-plate-template] .panel-plate__node,
.panel-plate-template[data-plate-template] .panel-diagram__node {
  inline-size: fit-content !important;
  width: fit-content !important;
  min-inline-size: 0 !important;
  max-inline-size: min(17rem, calc(100% - 1.6rem)) !important;
  white-space: nowrap !important;
  justify-content: center !important;
  padding-inline: clamp(0.68rem, 0.54rem + 0.34vw, 0.88rem) !important;
}

.panel-plate-template[data-plate-template] .panel-plate__focus,
.panel-plate-template[data-plate-template] .panel-diagram__focus {
  inline-size: fit-content !important;
  width: fit-content !important;
  min-inline-size: 0 !important;
  max-inline-size: min(14.8rem, calc(100% - 1.6rem)) !important;
  white-space: normal !important;
  text-wrap: balance;
  justify-content: center !important;
  padding-inline: clamp(0.72rem, 0.58rem + 0.35vw, 0.96rem) !important;
}

.panel-plate-template[data-plate-template='route'] .panel-plate__node,
.panel-plate-template[data-plate-template='route'] .panel-diagram__node,
.panel-plate-template[data-plate-template='route'] .panel-plate__focus,
.panel-plate-template[data-plate-template='route'] .panel-diagram__focus {
  max-inline-size: min(12.5rem, calc(100% - 1.6rem)) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'],
.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'],
.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'],
.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='start'],
.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='decision'],
.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'],
.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] {
  inline-size: fit-content !important;
  width: fit-content !important;
}

.panel-plate-template[data-plate-template='convergence'] .panel-plate__node,
.panel-plate-template[data-plate-template='convergence'] .panel-diagram__node {
  max-inline-size: min(13.8rem, calc(100% - 1.6rem)) !important;
}

.panel-plate-template[data-plate-template='convergence'] .panel-plate__focus,
.panel-plate-template[data-plate-template='convergence'] .panel-diagram__focus {
  max-inline-size: min(15rem, calc(100% - 1.6rem)) !important;
}

.panel-plate-template[data-plate-template='convergence'] [data-node='input-a'],
.panel-plate-template[data-plate-template='convergence'] [data-node='input-b'],
.panel-plate-template[data-plate-template='convergence'] [data-node='input-c'],
.panel-plate-template[data-plate-template='convergence'] [data-node='focus'] {
  inline-size: fit-content !important;
  width: fit-content !important;
}

.panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
  inline-size: min(84%, 16rem) !important;
  width: min(84%, 16rem) !important;
  max-inline-size: min(84%, 16rem) !important;
  justify-content: flex-start !important;
  white-space: nowrap !important;
}

.panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
  inline-size: fit-content !important;
  width: fit-content !important;
  min-inline-size: 0 !important;
  max-inline-size: min(12.8rem, calc(100% - 1.6rem)) !important;
  white-space: normal !important;
  text-wrap: balance;
}

@container (min-width: 29rem) {
  .panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
    inline-size: min(56%, 15.5rem) !important;
    width: min(56%, 15.5rem) !important;
    max-inline-size: min(56%, 15.5rem) !important;
  }

  .panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
    inline-size: fit-content !important;
    width: fit-content !important;
    max-inline-size: min(11.8rem, 34%) !important;
  }
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-plate__node,
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-diagram__node {
  max-inline-size: calc(100% - 1.4rem) !important;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-plate__focus,
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-diagram__focus {
  max-inline-size: min(14rem, calc(100% - 1.4rem)) !important;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
  inline-size: min(88%, 16rem) !important;
  width: min(88%, 16rem) !important;
  max-inline-size: min(88%, 16rem) !important;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
  inline-size: fit-content !important;
  width: fit-content !important;
  max-inline-size: min(13rem, calc(100% - 1.4rem)) !important;
}

@media (max-width: 25rem) {
  .panel-plate-template[data-plate-template] .panel-plate__node,
  .panel-plate-template[data-plate-template] .panel-diagram__node,
  .panel-plate-template[data-plate-template] .panel-plate__focus,
  .panel-plate-template[data-plate-template] .panel-diagram__focus {
    padding-inline: 0.66rem !important;
  }
}


/* =========================================================
   Plate Primitive Reset

   Purpose:
   - Lock bubble behavior, relationship line behavior, and gap rhythm.
   - Bubbles are content-sized, single-line capsules.
   - Relationship lines are visible, muted shell-gold connectors.
   - Gaps stay tight enough to read as a relationship, with no crowding.
   ========================================================= */

:root {
  --plate-primitive-route: rgba(164, 132, 72, 0.34);
  --plate-primitive-route-strong: rgba(164, 132, 72, 0.46);
  --plate-primitive-route-soft: rgba(164, 132, 72, 0.22);
  --plate-primitive-ring: rgba(73, 114, 139, 0.13);
  --plate-primitive-edge-gap: clamp(0.82rem, 0.62rem + 0.55vw, 1.08rem);
  --plate-primitive-node-x: clamp(0.72rem, 0.58rem + 0.28vw, 0.92rem);
  --plate-primitive-node-y: 0.42rem;
  --plate-primitive-dot: 0.46rem;
}

/* Bubble primitive: content-sized, single-line, never slot-sized. */
.panel-plate-template[data-plate-template] .panel-plate__node,
.panel-plate-template[data-plate-template] .panel-plate__focus,
.panel-plate-template[data-plate-template] .panel-diagram__node,
.panel-plate-template[data-plate-template] .panel-diagram__focus {
  box-sizing: border-box !important;
  display: inline-flex !important;
  inline-size: max-content !important;
  width: max-content !important;
  min-inline-size: 0 !important;
  max-inline-size: none !important;
  flex: 0 0 auto !important;
  justify-content: center !important;
  align-items: center !important;
  padding: var(--plate-primitive-node-y) var(--plate-primitive-node-x) !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  line-height: 1.1 !important;
}

/* No special stretching for final nodes or focus/destination bubbles. */
.panel-plate-template[data-plate-template] .panel-plate__node:last-child,
.panel-plate-template[data-plate-template] .panel-plate__focus:last-child,
.panel-plate-template[data-plate-template] .panel-diagram__node:last-child,
.panel-plate-template[data-plate-template] .panel-diagram__focus:last-child,
.panel-plate-template[data-plate-template] [data-node='focus'],
.panel-plate-template[data-plate-template] [data-node='decision'],
.panel-plate-template[data-plate-template] [data-node='destination'],
.panel-plate-template[data-plate-template] [data-node='action-a'],
.panel-plate-template[data-plate-template] [data-node='action-b'] {
  inline-size: max-content !important;
  width: max-content !important;
  min-inline-size: 0 !important;
  max-inline-size: none !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
}

.panel-plate-template[data-plate-template] .panel-plate__node::before,
.panel-plate-template[data-plate-template] .panel-plate__focus::before,
.panel-plate-template[data-plate-template] .panel-diagram__node::before,
.panel-plate-template[data-plate-template] .panel-diagram__focus::before {
  flex: 0 0 var(--plate-primitive-dot) !important;
  inline-size: var(--plate-primitive-dot) !important;
  block-size: var(--plate-primitive-dot) !important;
}

/* Lane template exception: lane nodes may act as bars. */
.panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
  inline-size: min(84%, 16.5rem) !important;
  width: min(84%, 16.5rem) !important;
  max-inline-size: min(84%, 16.5rem) !important;
  justify-content: flex-start !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
}

.panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
  inline-size: max-content !important;
  width: max-content !important;
  max-inline-size: none !important;
  justify-content: center !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
}

/* Relationship line primitive: clear gold connectors, not ghost marks. */
.panel-plate-template[data-plate-template] .panel-plate__route,
.panel-plate-template[data-plate-template] .panel-diagram__route {
  stroke: var(--plate-primitive-route-soft) !important;
  stroke-width: 2.35 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  vector-effect: non-scaling-stroke !important;
  opacity: 0.9 !important;
}

.panel-plate-template[data-plate-template] .panel-plate__route--accent,
.panel-plate-template[data-plate-template] .panel-diagram__route--accent,
.panel-plate-template[data-plate-template] .panel-plate__route--spine,
.panel-plate-template[data-plate-template] .panel-diagram__route--spine {
  stroke: var(--plate-primitive-route) !important;
  stroke-width: 2.6 !important;
  opacity: 0.94 !important;
}

.panel-plate-template[data-plate-template='route'] .panel-plate__route--accent,
.panel-plate-template[data-plate-template='route'] .panel-diagram__route--accent {
  stroke: var(--plate-primitive-route-strong) !important;
}

.panel-plate-template[data-plate-template] .panel-plate__ring,
.panel-plate-template[data-plate-template] .panel-diagram__ring {
  stroke: var(--plate-primitive-ring) !important;
  opacity: 0.34 !important;
}

/* Gap primitive: template heights and slots keep lines readable without dead space. */
.panel-plate-template[data-plate-template] {
  padding: var(--plate-primitive-edge-gap) !important;
}

.panel-plate-template[data-plate-template='route'] {
  --plate-field-compact-min: 12.6rem;
  --plate-field-min: 13.6rem;
}

.panel-plate-template[data-plate-template='convergence'] {
  --plate-field-min: 14.9rem;
}

.panel-plate-template[data-plate-template='lanes'] {
  --plate-field-min: 16.3rem;
}

/* Route template: one controlled connector chain. */
.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'] {
  inset-block-start: 16% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'] {
  inset-block-start: 50% !important;
  inset-inline-start: 50% !important;
  transform: translate(-50%, -50%) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'] {
  inset-block-end: 16% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
}

/* Branch route template. */
.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='start'] {
  inset-block-start: 10% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='decision'] {
  inset-block-start: 44% !important;
  inset-inline-start: 50% !important;
  transform: translate(-50%, -50%) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'] {
  inset-block-end: 11% !important;
  inset-inline-start: 31% !important;
  transform: translateX(-50%) !important;
}

.panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] {
  inset-block-end: 11% !important;
  inset-inline-start: 69% !important;
  transform: translateX(-50%) !important;
}

/* Convergence template: inputs relate to a central focus with a readable final input. */
.panel-plate-template[data-plate-template='convergence'] [data-node='input-a'] {
  inset-block-start: 10% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
}

.panel-plate-template[data-plate-template='convergence'] [data-node='input-b'] {
  inset-block-start: 28% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
}

.panel-plate-template[data-plate-template='convergence'] [data-node='focus'] {
  inset-block-start: 52% !important;
  inset-inline-start: 50% !important;
  transform: translate(-50%, -50%) !important;
}

.panel-plate-template[data-plate-template='convergence'] [data-node='input-c'] {
  inset-block-end: 10% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
}

/* Lane template: lane group with one contained destination. */
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-1'] { inset-block-start: 8% !important; }
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-2'] { inset-block-start: 23% !important; }
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-3'] { inset-block-start: 38% !important; }
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-4'] { inset-block-start: 53% !important; }

.panel-plate-template[data-plate-template='lanes'] [data-node='lane-1'],
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-2'],
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-3'],
.panel-plate-template[data-plate-template='lanes'] [data-node='lane-4'] {
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
}

.panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
  inset-block-end: 8% !important;
  inset-inline-start: 50% !important;
  transform: translateX(-50%) !important;
}

/* Wider containers: recompose without changing the bubble primitive. */
@container (min-width: 29rem) {
  .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] {
    --plate-field-compact-min: 10.8rem;
    --plate-field-min: 11.6rem;
  }

  .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'] {
    inset-block-start: 50% !important;
    inset-inline-start: 20% !important;
    transform: translate(-50%, -50%) !important;
  }

  .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'] {
    inset-block-start: 50% !important;
    inset-inline-start: 50% !important;
    transform: translate(-50%, -50%) !important;
  }

  .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'] {
    inset-block-start: 50% !important;
    inset-block-end: auto !important;
    inset-inline-start: 80% !important;
    transform: translate(-50%, -50%) !important;
  }

  .panel-plate-template[data-plate-template='convergence'] {
    --plate-field-min: 13.8rem;
  }

  .panel-plate-template[data-plate-template='convergence'] [data-node='input-a'] {
    inset-block-start: 15% !important;
    inset-inline-start: 28% !important;
    transform: translateX(-50%) !important;
  }

  .panel-plate-template[data-plate-template='convergence'] [data-node='input-b'] {
    inset-block-start: 15% !important;
    inset-inline-start: 72% !important;
    transform: translateX(-50%) !important;
  }

  .panel-plate-template[data-plate-template='convergence'] [data-node='focus'] {
    inset-block-start: 52% !important;
    inset-inline-start: 50% !important;
    transform: translate(-50%, -50%) !important;
  }

  .panel-plate-template[data-plate-template='convergence'] [data-node='input-c'] {
    inset-block-end: 12% !important;
    inset-inline-start: 50% !important;
    transform: translateX(-50%) !important;
  }

  .panel-plate-template[data-plate-template='lanes'] {
    --plate-field-min: 14.6rem;
  }

  .panel-plate-template[data-plate-template='lanes'] [data-node^='lane-'] {
    inline-size: min(57%, 15.8rem) !important;
    width: min(57%, 15.8rem) !important;
    max-inline-size: min(57%, 15.8rem) !important;
    inset-inline-start: 8% !important;
    transform: none !important;
  }

  .panel-plate-template[data-plate-template='lanes'] [data-node='lane-1'] { inset-block-start: 10% !important; }
  .panel-plate-template[data-plate-template='lanes'] [data-node='lane-2'] { inset-block-start: 28% !important; }
  .panel-plate-template[data-plate-template='lanes'] [data-node='lane-3'] { inset-block-start: 46% !important; }
  .panel-plate-template[data-plate-template='lanes'] [data-node='lane-4'] { inset-block-start: 64% !important; }

  .panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
    inset-block-start: 43% !important;
    inset-block-end: auto !important;
    inset-inline-start: 77% !important;
    transform: translate(-50%, -50%) !important;
  }
}

/* Shell state safety: portrait remains stacked and single-line. */
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-plate__node,
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-plate__focus,
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-diagram__node,
.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-diagram__focus {
  white-space: nowrap !important;
  text-wrap: nowrap !important;
  font-size: clamp(0.7rem, 2.35vw, 0.86rem) !important;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'] {
  min-height: 13.8rem !important;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'] {
  min-height: 15.8rem !important;
}

.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] {
  min-height: 17.4rem !important;
}

@media (max-width: 25rem) {
  .panel-plate-template[data-plate-template] .panel-plate__node,
  .panel-plate-template[data-plate-template] .panel-plate__focus,
  .panel-plate-template[data-plate-template] .panel-diagram__node,
  .panel-plate-template[data-plate-template] .panel-diagram__focus {
    --plate-primitive-node-x: 0.62rem;
    --plate-primitive-dot: 0.4rem;
    font-size: clamp(0.66rem, 2.45vw, 0.78rem) !important;
  }
}

/* ========================================================================== 
   V3 PLATE GEOMETRY CLEANUP — PRIMITIVE + ROUTE ALIGNMENT

   What V2 missed:
   - It forced labels to fit-content, but left template coordinates and SVG
     route geometry speaking different languages.
   - Existing lane labels were still treated as stretch bars.

   V3 rule:
   - Every plate node is a compact label by default.
   - Bars are opt-in only with data-node-shape="bar".
   - Template geometry places label centers to match the shipped SVG routes.
   ========================================================================== */

:root {
  --plate-v3-node-pad-x: clamp(0.62rem, 0.54rem + 0.22vw, 0.84rem);
  --plate-v3-node-pad-y: 0.36rem;
  --plate-v3-node-min-h: 1.86rem;
  --plate-v3-node-max: min(15rem, calc(100% - 1.4rem));
  --plate-v3-bar-width: min(72%, 15.5rem);
  --plate-v3-route-soft: rgba(129, 151, 159, 0.34);
  --plate-v3-route-accent: rgba(164, 132, 72, 0.44);
}

/* Canonical primitive: labels shrink to content. */
body.shell-body .panel-plate-template[data-plate-template] .panel-plate__node[data-node],
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__node[data-node],
body.shell-body .panel-plate-template[data-plate-template] .panel-plate__focus[data-node],
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__focus[data-node],
.panel-plate-template[data-plate-template] .panel-plate__node[data-node],
.panel-plate-template[data-plate-template] .panel-diagram__node[data-node],
.panel-plate-template[data-plate-template] .panel-plate__focus[data-node],
.panel-plate-template[data-plate-template] .panel-diagram__focus[data-node] {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  inline-size: fit-content !important;
  width: fit-content !important;
  min-inline-size: 0 !important;
  min-width: 0 !important;
  max-inline-size: var(--plate-v3-node-max) !important;
  max-width: var(--plate-v3-node-max) !important;
  min-block-size: var(--plate-v3-node-min-h) !important;
  min-height: var(--plate-v3-node-min-h) !important;
  padding: var(--plate-v3-node-pad-y) var(--plate-v3-node-pad-x) !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

/* Bars are opt-in. Existing lane labels are no longer stretched by default. */
body.shell-body .panel-plate-template[data-plate-template] [data-node-shape='bar'],
.panel-plate-template[data-plate-template] [data-node-shape='bar'] {
  inline-size: var(--plate-v3-bar-width) !important;
  width: var(--plate-v3-bar-width) !important;
  max-inline-size: var(--plate-v3-bar-width) !important;
  max-width: var(--plate-v3-bar-width) !important;
  justify-content: flex-start !important;
}

/* Reset legacy physical/logical placement before assigning canonical centers. */
body.shell-body .panel-plate-template[data-plate-template] [data-node] {
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
}

/* Route visibility follows shell state, not stale container fallback. */
body.shell-body[data-layout-mode='wide-dual'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='wide'],
body.shell-body[data-layout-mode='wide-dual'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='wide'],
body.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='wide'],
body.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='wide'] {
  display: block !important;
}

body.shell-body[data-layout-mode='wide-dual'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='portrait'],
body.shell-body[data-layout-mode='wide-dual'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='portrait'],
body.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='portrait'],
body.shell-body[data-layout-mode='landscape-side'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='portrait'] {
  display: none !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='wide'],
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='wide'] {
  display: none !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-plate__routes [data-route-state='portrait'],
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template] .panel-diagram__routes [data-route-state='portrait'] {
  display: block !important;
}

/* Shared route finish. */
body.shell-body .panel-plate-template[data-plate-template] .panel-plate__route,
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__route {
  vector-effect: non-scaling-stroke !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 2.15 !important;
  opacity: 0.82 !important;
}

body.shell-body .panel-plate-template[data-plate-template] .panel-plate__route--soft,
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__route--soft {
  stroke: var(--plate-v3-route-soft) !important;
}

body.shell-body .panel-plate-template[data-plate-template] .panel-plate__route--accent,
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__route--accent,
body.shell-body .panel-plate-template[data-plate-template] .panel-plate__route--spine,
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__route--spine {
  stroke: var(--plate-v3-route-accent) !important;
}

body.shell-body .panel-plate-template[data-plate-template] .panel-plate__ring,
body.shell-body .panel-plate-template[data-plate-template] .panel-diagram__ring {
  stroke: rgba(129, 151, 159, 0.22) !important;
  stroke-width: 1.25 !important;
  opacity: 0.62 !important;
}

/* CONVERGENCE / TRIAD — node centers match the 320x190 route art. */
body.shell-body .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] {
  min-height: 14.9rem !important;
}

body.shell-body .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-a'] {
  top: 28% !important;
  left: 31% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-b'] {
  top: 28% !important;
  left: 69% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='focus'] {
  top: 51% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-c'] {
  top: 76% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
}

/* ROUTE / LINEAR — matches 320x150 route art. */
body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] {
  min-height: 10.8rem !important;
}

body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'] {
  top: 50% !important;
  left: 31% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'] {
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'] {
  top: 50% !important;
  left: 77% !important;
  transform: translate(-50%, -50%) !important;
}

/* ROUTE / BRANCH — matches 320x180 route art. */
body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] {
  min-height: 14.2rem !important;
}

body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='start'] {
  top: 50% !important;
  left: 30% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='decision'] {
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'] {
  top: 26% !important;
  left: 78% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] {
  top: 76% !important;
  left: 78% !important;
  transform: translate(-50%, -50%) !important;
}

/* LANES — labels are compact by default; route art supplies the structure. */
body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] {
  min-height: 16.2rem !important;
}

body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-1'] {
  top: 19% !important;
  left: 34% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-2'] {
  top: 37% !important;
  left: 34% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-3'] {
  top: 56% !important;
  left: 34% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-4'] {
  top: 75% !important;
  left: 34% !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='destination'] {
  top: 48% !important;
  left: 75% !important;
  transform: translate(-50%, -50%) !important;
}

/* Portrait recomposition: coordinates match portrait SVG groups. */
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-a'] {
  top: 24% !important;
  left: 29% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-b'] {
  top: 24% !important;
  left: 71% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='focus'] {
  top: 51% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'][data-plate-variant='triad'] [data-node='input-c'] {
  top: 81% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='start'] {
  top: 28% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='decision'] {
  top: 54% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] [data-node='action-a'] {
  top: 81% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='start'] {
  top: 23% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='decision'] {
  top: 54% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-a'] {
  top: 80% !important;
  left: 33% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] [data-node='action-b'] {
  top: 80% !important;
  left: 67% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-1'] {
  top: 20% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-2'] {
  top: 34% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-3'] {
  top: 48% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='lane-4'] {
  top: 62% !important;
  left: 50% !important;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'][data-plate-variant='four-lane'] [data-node='destination'] {
  top: 83% !important;
  left: 50% !important;
}

/* ========================================================================== 
   PLATE SYSTEM V5 — ANCHOR MAP PASS
   Baseline: V3 geometry-clean. Do not port V4 global placement reset.

   Contract:
   - Template owns the anchor map.
   - Nodes attach to anchors.
   - SVG paths remain unchanged and are visually matched by anchor coordinates.
   - Bubble primitive owns label sizing and surface treatment only.
   - Page classes may theme only; they do not own node placement.

   Safety rule:
   This pass does NOT globally reset top/right/bottom/left/inset. It only maps
   known template nodes to explicit physical top/left anchors.
   ========================================================================== */

/* Node primitive authority: labels remain intrinsic/content-sized. */
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template][data-plate-variant] .panel-plate__node,
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template][data-plate-variant] .panel-diagram__node,
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template][data-plate-variant] .panel-plate__focus,
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template][data-plate-variant] .panel-diagram__focus {
  position: absolute !important;
  inline-size: fit-content !important;
  width: fit-content !important;
  min-inline-size: 0 !important;
  max-inline-size: min(14rem, calc(100% - 1.6rem)) !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
}

/* Lane nodes are labels by default. Bars must opt in with data-node-shape="bar". */
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node^='lane-']:not([data-node-shape='bar']) {
  inline-size: fit-content !important;
  width: fit-content !important;
  min-inline-size: 0 !important;
  max-inline-size: min(14rem, calc(100% - 1.6rem)) !important;
  justify-content: center !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node-shape='bar'] {
  inline-size: min(57%, 15.8rem) !important;
  width: min(57%, 15.8rem) !important;
  justify-content: flex-start !important;
}

/* Template anchor maps ----------------------------------------------------- */
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] {
  --plate-field-min: 14.8rem;
  min-height: 14.8rem !important;
  --anchor-start-x: 24%;
  --anchor-start-y: 50%;
  --anchor-decision-x: 51%;
  --anchor-decision-y: 50%;
  --anchor-action-a-x: 78%;
  --anchor-action-a-y: 26%;
  --anchor-action-b-x: 78%;
  --anchor-action-b-y: 76%;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] {
  --plate-field-min: 12.4rem;
  min-height: 12.4rem !important;
  --anchor-start-x: 18%;
  --anchor-start-y: 50%;
  --anchor-decision-x: 50%;
  --anchor-decision-y: 50%;
  --anchor-action-a-x: 82%;
  --anchor-action-a-y: 50%;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='convergence'] {
  --plate-field-min: 15.2rem;
  min-height: 15.2rem !important;
  --anchor-input-a-x: 28%;
  --anchor-input-a-y: 16%;
  --anchor-input-b-x: 72%;
  --anchor-input-b-y: 16%;
  --anchor-focus-x: 50%;
  --anchor-focus-y: 52%;
  --anchor-input-c-x: 50%;
  --anchor-input-c-y: 82%;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] {
  --plate-field-min: 17rem;
  min-height: 17rem !important;
  --anchor-lane-1-x: 25%;
  --anchor-lane-1-y: 14%;
  --anchor-lane-2-x: 25%;
  --anchor-lane-2-y: 32%;
  --anchor-lane-3-x: 25%;
  --anchor-lane-3-y: 50%;
  --anchor-lane-4-x: 25%;
  --anchor-lane-4-y: 68%;
  --anchor-destination-x: 76%;
  --anchor-destination-y: 50%;
}

/* Node-to-anchor bindings -------------------------------------------------- */
body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant] [data-node='start'] {
  top: var(--anchor-start-y) !important;
  left: var(--anchor-start-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant] [data-node='decision'] {
  top: var(--anchor-decision-y) !important;
  left: var(--anchor-decision-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant] [data-node='action-a'] {
  top: var(--anchor-action-a-y) !important;
  left: var(--anchor-action-a-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='route'][data-plate-variant] [data-node='action-b'] {
  top: var(--anchor-action-b-y) !important;
  left: var(--anchor-action-b-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='convergence'] [data-node='input-a'] {
  top: var(--anchor-input-a-y) !important;
  left: var(--anchor-input-a-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='convergence'] [data-node='input-b'] {
  top: var(--anchor-input-b-y) !important;
  left: var(--anchor-input-b-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='convergence'] [data-node='focus'] {
  top: var(--anchor-focus-y) !important;
  left: var(--anchor-focus-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='convergence'] [data-node='input-c'] {
  top: var(--anchor-input-c-y) !important;
  left: var(--anchor-input-c-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-1'] {
  top: var(--anchor-lane-1-y) !important;
  left: var(--anchor-lane-1-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-2'] {
  top: var(--anchor-lane-2-y) !important;
  left: var(--anchor-lane-2-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-3'] {
  top: var(--anchor-lane-3-y) !important;
  left: var(--anchor-lane-3-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node='lane-4'] {
  top: var(--anchor-lane-4-y) !important;
  left: var(--anchor-lane-4-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

body.shell-body[data-layout-mode] .panel-plate-template[data-plate-template='lanes'] [data-node='destination'] {
  top: var(--anchor-destination-y) !important;
  left: var(--anchor-destination-x) !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
}

/* Portrait anchor maps: same primitive, alternate template map. */
body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='branch'] {
  --plate-field-min: 15rem;
  min-height: 15rem !important;
  --anchor-start-x: 50%;
  --anchor-start-y: 16%;
  --anchor-decision-x: 50%;
  --anchor-decision-y: 46%;
  --anchor-action-a-x: 28%;
  --anchor-action-a-y: 80%;
  --anchor-action-b-x: 72%;
  --anchor-action-b-y: 80%;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='route'][data-plate-variant='linear'] {
  --plate-field-min: 12.8rem;
  min-height: 12.8rem !important;
  --anchor-start-x: 50%;
  --anchor-start-y: 16%;
  --anchor-decision-x: 50%;
  --anchor-decision-y: 50%;
  --anchor-action-a-x: 50%;
  --anchor-action-a-y: 84%;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='convergence'] {
  --plate-field-min: 16.2rem;
  min-height: 16.2rem !important;
  --anchor-input-a-x: 50%;
  --anchor-input-a-y: 14%;
  --anchor-input-b-x: 50%;
  --anchor-input-b-y: 32%;
  --anchor-focus-x: 50%;
  --anchor-focus-y: 55%;
  --anchor-input-c-x: 50%;
  --anchor-input-c-y: 82%;
}

body.shell-body[data-layout-mode='portrait-single'] .panel-plate-template[data-plate-template='lanes'] {
  --plate-field-min: 18.2rem;
  min-height: 18.2rem !important;
  --anchor-lane-1-x: 50%;
  --anchor-lane-1-y: 11%;
  --anchor-lane-2-x: 50%;
  --anchor-lane-2-y: 27%;
  --anchor-lane-3-x: 50%;
  --anchor-lane-3-y: 43%;
  --anchor-lane-4-x: 50%;
  --anchor-lane-4-y: 59%;
  --anchor-destination-x: 50%;
  --anchor-destination-y: 81%;
}

/* =========================================================
   Synapse Plate Grammar V8 — Compiled Inner Housing System

   This block is intentionally last in panel-plates.css.
   JS adds `.is-plate-compiled`, builds `.panel-plate__inner`,
   assigns `data-slot`, and writes slot variables.

   Ownership:
   - panel-system.css owns cards/surfaces only.
   - panel-plates.css owns all compiled plate geometry.
   - plate-system.js owns DOM normalization, slots, routes, and fallback stacking.
   ========================================================= */

:root {
  --plate-grammar-inset: clamp(0.95rem, 0.78rem + 0.58vw, 1.28rem);
  --plate-grammar-node-gap: 0.36rem;
  --plate-grammar-node-pad-x: clamp(0.62rem, 0.52rem + 0.28vw, 0.82rem);
  --plate-grammar-node-pad-y: 0.34rem;
  --plate-grammar-node-min-block: 1.88rem;
  --plate-grammar-route-soft: rgba(164, 132, 72, 0.30);
  --plate-grammar-route-strong: rgba(164, 132, 72, 0.44);
  --plate-grammar-ring: rgba(73, 114, 139, 0.14);
}

.panel-plate-template.is-plate-compiled[data-plate-template],
.panel-plate__field.panel-plate-template.is-plate-compiled[data-plate-template],
.panel-instrument__field.panel-plate-template.is-plate-compiled[data-plate-template] {
  box-sizing: border-box !important;
  position: relative !important;
  container-type: inline-size !important;
  overflow: hidden !important;
  padding: var(--plate-grammar-inset) !important;
}

.panel-plate-template.is-plate-compiled[data-plate-template]::before {
  inset: var(--plate-grammar-inset) !important;
  box-sizing: border-box !important;
  pointer-events: none !important;
}

.panel-plate-template.is-plate-compiled[data-plate-template]::after {
  pointer-events: none !important;
}

.panel-plate-template.is-plate-compiled > .panel-plate__inner {
  position: relative !important;
  z-index: 2;
  box-sizing: border-box !important;
  inline-size: 100% !important;
  min-inline-size: 0 !important;
  min-block-size: calc(var(--plate-field-min, 14rem) - (var(--plate-grammar-inset) * 2)) !important;
  border-radius: calc(var(--plate-field-radius, 1.08rem) - 0.28rem) !important;
  overflow: hidden !important;
}

.panel-plate-template.is-plate-compiled[data-plate-density='compact'] > .panel-plate__inner,
.panel-plate-template.is-plate-compiled.panel-plate__field--compact > .panel-plate__inner {
  min-block-size: calc(var(--plate-field-compact-min, 12.5rem) - (var(--plate-grammar-inset) * 2)) !important;
}

.panel-plate-template.is-plate-compiled > .panel-plate__inner > .panel-plate__routes,
.panel-plate-template.is-plate-compiled > .panel-plate__inner > .panel-diagram__routes,
.panel-plate-template.is-plate-compiled > .panel-plate__inner > .panel-plate__nodes {
  position: absolute !important;
  inset: 0 !important;
  margin: 0 !important;
}

.panel-plate-template.is-plate-compiled > .panel-plate__inner > .panel-plate__routes,
.panel-plate-template.is-plate-compiled > .panel-plate__inner > .panel-diagram__routes {
  z-index: 1 !important;
  display: block !important;
  inline-size: 100% !important;
  block-size: 100% !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none !important;
  overflow: visible !important;
}

.panel-plate-template.is-plate-compiled > .panel-plate__inner > .panel-plate__nodes {
  z-index: 2 !important;
  pointer-events: none !important;
}

/* Compiled routes: route geometry comes from plate-system.js. */
.panel-plate-template.is-plate-compiled .panel-plate__ring,
.panel-plate-template.is-plate-compiled .panel-diagram__ring {
  fill: none !important;
  vector-effect: non-scaling-stroke !important;
  stroke: var(--plate-grammar-ring) !important;
  stroke-width: 1.25 !important;
  opacity: 0.58 !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__route,
.panel-plate-template.is-plate-compiled .panel-diagram__route {
  fill: none !important;
  vector-effect: non-scaling-stroke !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke: var(--plate-grammar-route-soft) !important;
  stroke-width: 2.2 !important;
  opacity: 0.88 !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__route--accent,
.panel-plate-template.is-plate-compiled .panel-diagram__route--accent,
.panel-plate-template.is-plate-compiled .panel-plate__route--spine,
.panel-plate-template.is-plate-compiled .panel-diagram__route--spine {
  stroke: var(--plate-grammar-route-strong) !important;
  stroke-width: 2.35 !important;
  opacity: 0.92 !important;
}

/* Compiled nodes: all legacy top/left/right/bottom rules are neutralized. */
.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-plate__node,
.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-diagram__node,
.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-plate__focus,
.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-diagram__focus {
  box-sizing: border-box !important;
  position: absolute !important;
  z-index: 3 !important;
  inset: auto !important;
  inset-block-start: auto !important;
  inset-block-end: auto !important;
  inset-inline-start: auto !important;
  inset-inline-end: auto !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--plate-grammar-node-gap) !important;

  inline-size: fit-content !important;
  width: fit-content !important;
  min-inline-size: 0 !important;
  min-width: 0 !important;
  max-inline-size: min(var(--slot-max, 100%), 100%) !important;
  max-width: min(var(--slot-max, 100%), 100%) !important;

  min-block-size: var(--plate-grammar-node-min-block) !important;
  min-height: var(--plate-grammar-node-min-block) !important;
  padding: var(--plate-grammar-node-pad-y) var(--plate-grammar-node-pad-x) !important;

  white-space: nowrap !important;
  text-wrap: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 1.08 !important;
  text-align: center !important;

  pointer-events: none !important;
  cursor: default !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__nodes > [data-anchor='center'] {
  inset-inline-start: var(--plate-node-x) !important;
  inset-block-start: var(--plate-node-y) !important;
  transform: translate(-50%, -50%) !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__nodes > [data-anchor='start'] {
  inset-inline-start: var(--plate-node-x) !important;
  inset-block-start: var(--plate-node-y) !important;
  transform: translateY(-50%) !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__nodes > [data-anchor='end'] {
  inset-inline-end: calc(100% - var(--plate-node-x)) !important;
  inset-block-start: var(--plate-node-y) !important;
  transform: translateY(-50%) !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__nodes > [data-node-kind='bubble'] {
  border-radius: 999px !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__nodes > [data-node-kind='focus'] {
  border-radius: 0.92rem !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__nodes > [data-node-kind='bar'] {
  inline-size: var(--slot-width, var(--slot-max)) !important;
  width: var(--slot-width, var(--slot-max)) !important;
  justify-content: flex-start !important;
}

.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-plate__node::before,
.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-diagram__node::before,
.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-plate__focus::before,
.panel-plate-template.is-plate-compiled .panel-plate__nodes > .panel-diagram__focus::before {
  flex: 0 0 0.42rem !important;
  inline-size: 0.42rem !important;
  block-size: 0.42rem !important;
  margin: 0 !important;
}

/* Layout-specific field heights. Stacked layouts need vertical breathing room. */
.panel-plate-template.is-plate-compiled[data-plate-layout='stacked'][data-plate-template='convergence'] > .panel-plate__inner {
  min-block-size: max(13.8rem, calc(var(--plate-field-min, 14rem) - (var(--plate-grammar-inset) * 2))) !important;
}

.panel-plate-template.is-plate-compiled[data-plate-layout='stacked'][data-plate-template='route'] > .panel-plate__inner {
  min-block-size: max(11.8rem, calc(var(--plate-field-compact-min, 12.5rem) - (var(--plate-grammar-inset) * 2))) !important;
}

.panel-plate-template.is-plate-compiled[data-plate-layout='stacked'][data-plate-template='lanes'] > .panel-plate__inner {
  min-block-size: max(15.8rem, calc(var(--plate-field-min, 14rem) - (var(--plate-grammar-inset) * 2))) !important;
}

/* Extra-narrow safety: reduce type before allowing collisions. */
@container (max-width: 25rem) {
  .panel-plate-template.is-plate-compiled[data-plate-template] {
    --plate-grammar-inset: 0.82rem;
    --plate-grammar-node-pad-x: 0.56rem;
    --plate-node-font: clamp(0.68rem, 2.6vw, 0.78rem);
  }
}

/* Debug mode: add ?plateDebug to any page URL. */
body[data-plate-debug='true'] .panel-plate-template.is-plate-compiled .panel-plate__inner,
.panel-plate-template.is-plate-compiled[data-plate-debug='true'] .panel-plate__inner {
  background-image:
    linear-gradient(rgba(33, 95, 134, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(33, 95, 134, 0.09) 1px, transparent 1px) !important;
  background-size: 10% 10% !important;
}

body[data-plate-debug='true'] .panel-plate-template.is-plate-compiled .panel-plate__nodes > [data-slot]::after,
.panel-plate-template.is-plate-compiled[data-plate-debug='true'] .panel-plate__nodes > [data-slot]::after {
  content: attr(data-slot);
  position: absolute;
  inset-block-start: calc(100% + 0.16rem);
  inset-inline-start: 50%;
  transform: translateX(-50%);
  font-family: var(--font-ui, system-ui, sans-serif);
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(19, 41, 71, 0.56);
  white-space: nowrap;
}

/* =========================================================
   Synapse Plate Grammar V9 — State Authority Layer

   This block is intentionally the last authority in this file.
   State is sovereign: if JS or shell state resolves a plate to a
   composition state, template/node defaults must yield.

   State model:
   - data-plate-layout: wide | stacked
   - data-plate-safety: clear | tight | crowded | overflow | clipped | compressed
   - data-plate-state: stable | recomposed
   - data-plate-state-authority: true
   ========================================================= */

.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'] {
  --plate-state-node-pad-x: var(--plate-grammar-node-pad-x);
  --plate-state-node-pad-y: var(--plate-grammar-node-pad-y);
  --plate-state-node-min-block: var(--plate-grammar-node-min-block);
}

/* State-managed plates must obey the compiled inner coordinate space. */
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'] > .panel-plate__inner {
  contain: layout !important;
  overflow: hidden !important;
}

/* State wins over template-era positioning rules. */
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'] .panel-plate__nodes > [data-slot] {
  inset: auto !important;
  inset-block-start: auto !important;
  inset-block-end: auto !important;
  inset-inline-start: auto !important;
  inset-inline-end: auto !important;
  max-inline-size: min(var(--slot-max, 100%), 100%) !important;
  max-width: min(var(--slot-max, 100%), 100%) !important;
  min-block-size: var(--plate-state-node-min-block) !important;
  padding: var(--plate-state-node-pad-y) var(--plate-state-node-pad-x) !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
}

.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'] .panel-plate__nodes > [data-anchor='center'] {
  inset-inline-start: var(--plate-node-x) !important;
  inset-block-start: var(--plate-node-y) !important;
  transform: translate(-50%, -50%) !important;
}

.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'] .panel-plate__nodes > [data-anchor='start'] {
  inset-inline-start: var(--plate-node-x) !important;
  inset-block-start: var(--plate-node-y) !important;
  transform: translateY(-50%) !important;
}

.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'] .panel-plate__nodes > [data-anchor='end'] {
  inset-inline-end: calc(100% - var(--plate-node-x)) !important;
  inset-block-start: var(--plate-node-y) !important;
  transform: translateY(-50%) !important;
}

/* Stacked is a composition state, not an emergency clipping state. */
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-layout='stacked'] .panel-plate__nodes > [data-slot] {
  overflow: visible !important;
  text-overflow: clip !important;
}

/* Tight/crowded states compress before they ever allow overlap. */
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-safety='tight'],
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-safety='crowded'],
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-safety='clipped'],
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-safety='compressed'] {
  --plate-state-node-pad-x: clamp(0.52rem, 1.6cqi, 0.68rem);
  --plate-state-node-pad-y: 0.32rem;
  --plate-state-node-min-block: 1.76rem;
  --plate-node-font: clamp(0.68rem, 2.3cqi, 0.82rem);
}

/* Convergence: stacked state requires true vertical composition. */
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-template='convergence'][data-plate-layout='stacked'] > .panel-plate__inner {
  min-block-size: max(15.4rem, calc(var(--plate-field-min, 14rem) - (var(--plate-grammar-inset) * 2))) !important;
}

.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-template='convergence'][data-plate-layout='stacked'] .panel-plate__nodes > [data-slot='top-left'],
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-template='convergence'][data-plate-layout='stacked'] .panel-plate__nodes > [data-slot='top-right'] {
  max-inline-size: min(94%, 18rem) !important;
  max-width: min(94%, 18rem) !important;
}

/* Branch routes: stacked means actions stack vertically, not split in one crowded row. */
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-template='route'][data-plate-variant='branch'][data-plate-layout='stacked'] > .panel-plate__inner {
  min-block-size: max(14.8rem, calc(var(--plate-field-min, 14rem) - (var(--plate-grammar-inset) * 2))) !important;
}

.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-template='route'][data-plate-variant='branch'][data-plate-layout='stacked'] .panel-plate__nodes > [data-slot='route-action-a'],
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-template='route'][data-plate-variant='branch'][data-plate-layout='stacked'] .panel-plate__nodes > [data-slot='route-action-b'] {
  max-inline-size: min(92%, 15rem) !important;
  max-width: min(92%, 15rem) !important;
}

/* Linear route and lanes also get extra breathing room when state recomposes them. */
.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-template='route'][data-plate-layout='stacked'] > .panel-plate__inner {
  min-block-size: max(13.6rem, calc(var(--plate-field-compact-min, 12.5rem) - (var(--plate-grammar-inset) * 2))) !important;
}

.panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-template='lanes'][data-plate-layout='stacked'] > .panel-plate__inner {
  min-block-size: max(16.2rem, calc(var(--plate-field-min, 14rem) - (var(--plate-grammar-inset) * 2))) !important;
}

/* Mobile state should not be allowed to present paired convergence bubbles. */
@media (max-width: 760px) {
  .panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-template='convergence'],
  .panel-plate-template.is-plate-compiled[data-plate-state-authority='true'][data-plate-template='route'][data-plate-variant='branch'] {
    --plate-state-node-pad-x: clamp(0.54rem, 1.8cqi, 0.72rem);
  }
}

/* Debug labels include state so the governing mode is visible. */
body[data-plate-debug='true'] .panel-plate-template.is-plate-compiled[data-plate-state-authority='true']::after,
.panel-plate-template.is-plate-compiled[data-plate-debug='true'][data-plate-state-authority='true']::after {
  content: attr(data-plate-template) ' / ' attr(data-plate-layout) ' / ' attr(data-plate-safety) !important;
  position: absolute !important;
  inset-block-start: 0.35rem !important;
  inset-inline-end: 0.5rem !important;
  z-index: 6 !important;
  font-family: var(--font-ui, system-ui, sans-serif) !important;
  font-size: 0.58rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: rgba(19, 41, 71, 0.55) !important;
  background: rgba(255, 255, 255, 0.72) !important;
  border: 1px solid rgba(19, 41, 71, 0.08) !important;
  border-radius: 999px !important;
  padding: 0.16rem 0.42rem !important;
  opacity: 0.86 !important;
}

/* =========================================================
   Spatial Engine Round 2 — Plate Bridge Hooks

   The existing plate compiler still owns markup normalization, slot assignment,
   SVG route generation, and safety recomposition. Spatial registration records
   the solved boxes and exposes them for debug/future reuse. Visual fallback
   remains the current plate grammar if registration is unavailable.
   ========================================================= */
.panel-plate-template[data-spatial-object='plate'] {
  --plate-spatial-debug-line: rgba(43, 130, 139, 0.46);
}

.panel-plate-template.is-plate-compiled[data-spatial-registered='true'] .panel-plate__nodes > [data-slot] {
  --plate-node-x: var(--plate-node-registered-x, var(--plate-node-x));
  --plate-node-y: var(--plate-node-registered-y, var(--plate-node-y));
}

body[data-spatial-debug='bounds'] .panel-plate-template[data-spatial-registered='true'] {
  outline: 1px dashed var(--plate-spatial-debug-line);
  outline-offset: -2px;
}

body[data-spatial-debug='bounds'] .panel-plate-template[data-spatial-registered='true'] .panel-plate__nodes > [data-spatial-box] {
  box-shadow:
    0 0 0 1px rgba(43, 130, 139, 0.32),
    0 0.24rem 0.6rem rgba(17, 37, 61, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.72) !important;
}

body[data-spatial-debug='bounds'] .panel-plate-template[data-spatial-registered='true'] .panel-plate__routes [data-route] {
  opacity: 1;
}

/* ---- admitted safe source: css/shell-illustrations.css ---- */
.shell-illustration-panel {
  display: grid;
  gap: 0.9rem;
  align-content: start;
  padding: clamp(1rem, 0.92rem + 0.45vw, 1.35rem);
  border-radius: var(--radius-lg);
  border: 1px solid rgba(19, 41, 71, 0.1);
  background:
    radial-gradient(circle at top right, rgba(49, 85, 127, 0.08), transparent 48%),
    linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,250,252,0.94));
  box-shadow: var(--shadow-sm);
}

.shell-illustration {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 13.25rem;
  border-radius: 1.18rem;
  border: 1px solid rgba(33, 95, 134, 0.1);
  background:
    radial-gradient(circle at 18% 14%, rgba(255,255,255,0.94), transparent 28%),
    linear-gradient(180deg, rgba(249,252,253,0.98), rgba(236,244,247,0.95));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.55);
}

.shell-illustration--compact {
  min-height: 9.6rem;
}

.shell-illustration__wash,
.shell-illustration__halo,
.shell-illustration__connector,
.shell-illustration__plate,
.shell-illustration__focus,
.shell-illustration__lane {
  position: absolute;
  pointer-events: none;
}

.shell-illustration__wash {
  inset: 0;
  background:
    radial-gradient(circle at 18% 18%, var(--syn-action-soft, rgba(126, 181, 187, 0.16)), transparent 26%),
    radial-gradient(circle at 82% 74%, rgba(73, 104, 154, 0.12), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,0.22));
  z-index: 0;
}

.shell-illustration__halo {
  border-radius: 999px;
  border: 1px solid rgba(72, 110, 147, 0.16);
  background: linear-gradient(180deg, rgba(255,255,255,0.1), rgba(255,255,255,0));
  z-index: 1;
}

.shell-illustration__connector {
  block-size: 0.7rem;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(73,104,154,0.12), var(--syn-bridge-soft, rgba(73,144,150,0.32)), rgba(73,104,154,0.12));
  z-index: 2;
}

.shell-illustration__plate,
.shell-illustration__lane,
.shell-illustration__focus {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0 0.8rem;
  border-radius: 999px;
  border: 1px solid rgba(44, 95, 135, 0.16);
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(233,241,245,0.95));
  box-shadow: 0 0.18rem 0.46rem rgba(17, 37, 61, 0.08);
  color: var(--color-title);
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.01em;
  white-space: nowrap;
  z-index: 3;
}

.shell-illustration__focus {
  min-height: auto;
  padding: 0.62rem 0.95rem;
  border-radius: 1rem;
  line-height: 1.18;
  text-align: center;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(227,238,244,0.96));
  box-shadow: 0 0.3rem 0.8rem rgba(17, 37, 61, 0.09);
}

.shell-illustration__lane {
  justify-content: flex-start;
  padding-inline: 0.9rem;
}

.shell-illustration__caption {
  display: grid;
  gap: 0.35rem;
}

.shell-illustration__kicker {
  margin: 0;
  color: var(--syn-action, var(--color-teal-600));
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.shell-illustration__summary {
  margin: 0;
  color: var(--color-text-soft);
  font-family: var(--font-body);
  font-size: 0.92rem;
  line-height: 1.55;
}

/* Practice */
.practice-wave__halo--outer { inset: 10% 10% 10% 10%; }
.practice-wave__halo--mid { inset: 22% 23% 22% 23%; }
.practice-wave__connector--neurology { inset: 30% 34% auto 29%; transform: rotate(8deg); }
.practice-wave__connector--psychiatry { inset: 30% 22% auto 49%; transform: rotate(-10deg); }
.practice-wave__connector--neuropsychology { inset: auto 32% 30% 31%; transform: rotate(10deg); }
.practice-wave__plate--neurology { inset: 17% auto auto 11%; }
.practice-wave__plate--psychiatry { inset: 17% 10% auto auto; }
.practice-wave__plate--neuropsychology { inset: auto auto 14% 19%; }
.practice-wave__focus { inset: 38% 21% auto auto; inline-size: 9.4rem; }

.practice-hero-panel__content,
.practice-closing-panel__content {
  display: grid;
  gap: 0.5rem;
}

.practice-hero-panel__eyebrow,
.practice-closing-panel__eyebrow {
  margin: 0;
  color: var(--syn-action, var(--color-teal-600));
  font-family: var(--font-ui);
  font-size: 0.74rem;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.practice-hero-panel__summary,
.practice-closing-panel__summary {
  margin: 0;
  color: var(--color-text-soft);
  font-family: var(--font-body);
  font-size: 0.94rem;
  line-height: 1.55;
}

.practice-closing-flow__halo { inset: 16% 12% 18% 12%; }
.practice-closing-flow__connector { inset: auto 17% 40% 17%; transform: rotate(10deg); }
.practice-closing-flow__plate--services { inset: 18% auto auto 11%; }
.practice-closing-flow__plate--contact { inset: auto 11% 18% auto; }
.practice-closing-flow__focus { inset: 36% 32% auto 32%; }

/* About */
.about-convergence__connector--focused { inset: 24% 41% auto 28%; transform: rotate(8deg); }
.about-convergence__connector--review { inset: 47% 41% auto 26%; }
.about-convergence__connector--scope { inset: auto 41% 24% 28%; transform: rotate(-8deg); }
.about-convergence__plate--focused { inset: 12% auto auto 10%; }
.about-convergence__plate--review { inset: 42% auto auto 9%; }
.about-convergence__plate--scope { inset: auto auto 12% 10%; }
.about-convergence__focus { inset: 34% 10% auto auto; inline-size: 8.6rem; }

/* Services */
.services-lanes__lane {
  left: 8%;
  right: 41%;
  min-height: 1.7rem;
}
.services-lanes__lane--neurology { top: 14%; }
.services-lanes__lane--psychiatry { top: 33%; }
.services-lanes__lane--neuropsychology { top: 52%; }
.services-lanes__lane--multidisciplinary { top: 71%; }
.services-lanes__connector { inset: 36% 26% auto 53%; block-size: 3.5rem; border-radius: 1.15rem; background: linear-gradient(180deg, rgba(73,104,154,0.12), rgba(73,144,150,0.28), rgba(73,104,154,0.12)); }
.services-lanes__focus { inset: 31% 10% auto auto; inline-size: 8.9rem; }

/* Clinicians */
.clinicians-route__connector--stem { inset: auto auto 48% 28%; inline-size: 17%; }
.clinicians-route__connector--contact { inset: 28% auto auto 46%; inline-size: 21%; transform: rotate(-18deg); }
.clinicians-route__connector--secure { inset: auto auto 29% 46%; inline-size: 21%; transform: rotate(18deg); }
.clinicians-route__plate--entry { inset: 39% auto auto 11%; }
.clinicians-route__plate--contact { inset: 14% 10% auto auto; }
.clinicians-route__plate--secure { inset: auto 10% 14% auto; }
.clinicians-route__focus { inset: 37% 32% auto auto; inline-size: 7.8rem; }

.about-convergence-panel,
.services-lanes-panel,
.clinicians-route-panel,
.practice-hero-panel,
.practice-closing-panel {
  align-content: start;
}

.about-shell--illustrated .section-shell__grid,
.services-shell--illustrated .section-shell__grid,
.clinicians-shell--illustrated .section-shell__grid {
  align-items: start;
}

@media (max-width: 980px) {
  .shell-illustration-panel {
    padding: 0.92rem;
  }

  .shell-illustration {
    min-height: 12.2rem;
  }
}

@media (max-width: 760px) {
  .shell-illustration-panel {
    gap: 0.72rem;
    padding: 0.9rem;
  }

  .shell-illustration,
  .shell-illustration--compact {
    min-height: 10.8rem;
  }

  .shell-illustration__plate,
  .shell-illustration__lane,
  .shell-illustration__focus {
    font-size: 0.74rem;
    padding-inline: 0.68rem;
  }

  .shell-illustration__focus {
    padding: 0.55rem 0.8rem;
  }

  .practice-wave__focus,
  .about-convergence__focus,
  .services-lanes__focus,
  .clinicians-route__focus {
    inline-size: auto;
    max-inline-size: 8.8rem;
  }

  .practice-closing-flow__plate--services,
  .practice-closing-flow__plate--contact,
  .clinicians-route__plate--contact,
  .clinicians-route__plate--secure {
    white-space: normal;
    max-inline-size: 6.7rem;
    text-align: center;
  }

  .services-lanes__lane {
    right: 36%;
    min-height: 1.56rem;
  }
}
/* =========================================================
   Synapse Practice/index native diagram system
   Direction: frosted clinical routing diagrams with recessed
   shell casing, disciplined nodes, and muted champagne/teal paths.
   Markup-compatible with scenes/clinic/practice.html.
   ========================================================= */

.shell-illustration-panel {
  --shell-art-navy: var(--color-title, #132947);
  --shell-art-muted: var(--color-text-soft, #5f7182);
  --shell-art-teal: rgba(43, 130, 139, 0.34);
  --shell-art-teal-soft: var(--syn-action-soft, rgba(126, 181, 187, 0.16));
  --shell-art-brass: rgba(151, 125, 72, 0.28);
  --shell-art-brass-soft: rgba(164, 132, 72, 0.075);
  --shell-art-border: rgba(38, 82, 110, 0.13);
  --shell-art-border-soft: rgba(38, 82, 110, 0.085);

  position: relative;
  border-color: var(--shell-art-border);
  background:
    radial-gradient(circle at 90% 0%, rgba(207, 229, 236, 0.58), transparent 42%),
    radial-gradient(circle at 4% 100%, rgba(164, 132, 72, 0.055), transparent 46%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(247, 250, 251, 0.955));
  box-shadow:
    0 0.78rem 1.6rem rgba(16, 37, 63, 0.065),
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 0 0 1px rgba(255, 255, 255, 0.52);
}

.shell-illustration {
  min-height: 12.85rem;
  border-radius: 1.16rem;
  border-color: rgba(35, 91, 124, 0.145);
  background:
    radial-gradient(circle at 20% 12%, rgba(255, 255, 255, 0.96), transparent 28%),
    radial-gradient(circle at 84% 14%, rgba(203, 228, 236, 0.42), transparent 38%),
    linear-gradient(180deg, rgba(251, 253, 253, 0.985), rgba(236, 246, 248, 0.955));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    inset 0 -1px 0 rgba(32, 76, 96, 0.045),
    0 0 0 1px rgba(255, 255, 255, 0.42);
}

.shell-illustration::before,
.shell-illustration::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.shell-illustration::before {
  inset: 0.48rem;
  z-index: 0;
  border-radius: 0.86rem;
  border: 1px solid rgba(44, 95, 135, 0.105);
  background:
    radial-gradient(circle at 50% 5%, rgba(255, 255, 255, 0.34), transparent 42%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.62),
    inset 0 -1px 0 rgba(34, 74, 92, 0.045),
    0 0 0 1px rgba(151, 125, 72, 0.035);
}

.shell-illustration::after {
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  background:
    linear-gradient(90deg, transparent 0 49.6%, rgba(33, 95, 134, 0.035) 49.6% 50.4%, transparent 50.4% 100%),
    radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.34), transparent 42%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.24), transparent 58%);
  opacity: 0.7;
}

.shell-illustration__wash {
  background:
    radial-gradient(circle at 18% 18%, rgba(126, 181, 187, 0.13), transparent 28%),
    radial-gradient(circle at 82% 74%, rgba(73, 104, 154, 0.095), transparent 32%),
    radial-gradient(circle at 50% 50%, rgba(164, 132, 72, 0.038), transparent 54%);
  opacity: 0.86;
  z-index: 0;
}

.shell-illustration__halo {
  z-index: 2;
  border-color: rgba(72, 110, 147, 0.14);
  background:
    radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.34), transparent 58%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.018));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.42),
    inset 0 -1px 0 rgba(35, 77, 97, 0.045);
}

.shell-illustration__connector {
  z-index: 3;
  block-size: 0.42rem;
  border-radius: 999px;
  background:
    linear-gradient(90deg,
      rgba(73, 104, 154, 0),
      rgba(59, 130, 139, 0.25) 22%,
      rgba(151, 125, 72, 0.18) 50%,
      rgba(59, 130, 139, 0.25) 78%,
      rgba(73, 104, 154, 0));
  box-shadow:
    0 0.08rem 0.16rem rgba(17, 37, 61, 0.055),
    inset 0 1px 0 rgba(255, 255, 255, 0.34);
  opacity: 0.92;
}

.shell-illustration__connector::after {
  content: "";
  position: absolute;
  inset: 45% 8% auto 8%;
  block-size: 1px;
  border-radius: 999px;
  background: rgba(33, 95, 134, 0.16);
}

.shell-illustration__plate,
.shell-illustration__lane,
.shell-illustration__focus {
  z-index: 4;
  min-height: 2.02rem;
  border-color: rgba(36, 82, 118, 0.15);
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.78), transparent 48%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(239, 245, 247, 0.965));
  box-shadow:
    0 0.24rem 0.62rem rgba(17, 37, 61, 0.088),
    inset 0 1px 0 rgba(255, 255, 255, 0.74),
    0 0 0 1px rgba(255, 255, 255, 0.48);
  color: var(--shell-art-navy);
}

.shell-illustration__focus {
  border-color: rgba(151, 125, 72, 0.18);
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.82), transparent 48%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(236, 243, 246, 0.98));
  box-shadow:
    0 0.32rem 0.86rem rgba(17, 37, 61, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.78),
    0 0 0 1px rgba(151, 125, 72, 0.045);
}

.shell-illustration__focus::before {
  content: "";
  position: absolute;
  inset: -0.22rem;
  z-index: -1;
  border-radius: inherit;
  background: radial-gradient(circle, rgba(151, 125, 72, 0.08), transparent 68%);
}

/* Practice/index: convergence map */
.practice-wave__halo--outer {
  inset: 13% 9% 12% 9%;
  border-radius: 48% 52% 54% 46% / 42% 39% 61% 58%;
}

.practice-wave__halo--mid {
  inset: 26% 22% 25% 22%;
  border-radius: 46% 54% 49% 51% / 46% 42% 58% 54%;
}

.practice-wave__connector--neurology {
  inset: 35% auto auto 28%;
  inline-size: 24%;
  transform: rotate(8deg);
}

.practice-wave__connector--psychiatry {
  inset: 35% 28% auto auto;
  inline-size: 24%;
  transform: rotate(-8deg);
}

.practice-wave__connector--neuropsychology {
  inset: 60% auto auto 50%;
  inline-size: 24%;
  transform: translateX(-50%) rotate(90deg);
  transform-origin: center;
}

.practice-wave__plate--neurology { inset: 17% auto auto 10%; }
.practice-wave__plate--psychiatry { inset: 17% 10% auto auto; }
.practice-wave__plate--neuropsychology {
  inset: auto auto 14% 50%;
  transform: translateX(-50%);
}

.practice-wave__focus {
  inset: 41% auto auto 50%;
  inline-size: auto;
  min-inline-size: 9.8rem;
  transform: translateX(-50%);
}

/* Practice/index: closing route selector */
.practice-closing-flow__halo {
  inset: 18% 12% 19% 12%;
  border-radius: 44% 56% 54% 46% / 47% 41% 59% 53%;
}

.practice-closing-flow__connector {
  inset: 48% auto auto 50%;
  inline-size: 52%;
  block-size: 0.38rem;
  transform: translateX(-50%);
  background: linear-gradient(90deg, rgba(73, 104, 154, 0), rgba(59, 130, 139, 0.24), rgba(151, 125, 72, 0.18), rgba(59, 130, 139, 0.24), rgba(73, 104, 154, 0));
}

.practice-closing-flow__connector::before,
.practice-closing-flow__connector::after {
  content: "";
  position: absolute;
  left: 50%;
  inline-size: 38%;
  block-size: 0.34rem;
  border-radius: 999px;
  background: inherit;
  opacity: 0.72;
}

.practice-closing-flow__connector::before {
  top: -1.38rem;
  transform: translateX(-92%) rotate(-16deg);
}

.practice-closing-flow__connector::after {
  top: 1.28rem;
  transform: translateX(-8%) rotate(16deg);
}

.practice-closing-flow__plate--services { inset: 18% auto auto 10%; }
.practice-closing-flow__plate--contact { inset: auto 10% 18% auto; }

.practice-closing-flow__focus {
  inset: 39% auto auto 50%;
  inline-size: auto;
  min-inline-size: 6.4rem;
  transform: translateX(-50%);
}

.practice-page .practice-hero-panel__eyebrow,
.practice-page .practice-closing-panel__eyebrow,
.shell-illustration__kicker {
  color: color-mix(in srgb, var(--color-teal-600, #1f8288) 76%, rgba(151, 125, 72, 0.92) 24%);
}

@media (max-width: 760px) {
  .shell-illustration,
  .shell-illustration--compact {
    min-height: 11.15rem;
  }

  .shell-illustration::before {
    inset: 0.42rem;
    border-radius: 0.82rem;
  }

  .shell-illustration__plate,
  .shell-illustration__lane,
  .shell-illustration__focus {
    font-size: 0.72rem;
    padding-inline: 0.64rem;
  }

  .practice-wave__halo--outer { inset: 14% 7% 13% 7%; }
  .practice-wave__halo--mid { inset: 27% 17% 26% 17%; }

  .practice-wave__connector--neurology {
    inset: 36% auto auto 24%;
    inline-size: 29%;
  }

  .practice-wave__connector--psychiatry {
    inset: 36% 23% auto auto;
    inline-size: 29%;
  }

  .practice-wave__connector--neuropsychology {
    inset: 61% auto auto 50%;
    inline-size: 22%;
  }

  .practice-wave__plate--neurology { inset: 17% auto auto 9%; }
  .practice-wave__plate--psychiatry { inset: 17% 8% auto auto; }
  .practice-wave__plate--neuropsychology {
    inset: auto auto 14% 50%;
    max-inline-size: 9.1rem;
  }

  .practice-wave__focus {
    inset: 42% auto auto 50%;
    min-inline-size: 0;
  }

  .practice-closing-flow__connector {
    inline-size: 56%;
  }

  .practice-closing-flow__plate--services { inset: 18% auto auto 9%; }
  .practice-closing-flow__plate--contact { inset: auto 9% 17% auto; }
  .practice-closing-flow__focus {
    inset: 40% auto auto 50%;
    min-inline-size: 0;
  }
}

@media (orientation: landscape) and (max-height: 560px) {
  .shell-body.practice-page[data-layout-mode='landscape-side'] .l-page-head {
    padding-block: 0.35rem 0.55rem;
  }

  .shell-body.practice-page[data-layout-mode='landscape-side'] .page-head__inner {
    gap: 0.85rem;
  }

  .shell-body.practice-page[data-layout-mode='landscape-side'] .page-head__title {
    max-width: 24ch;
    font-size: clamp(2rem, 5.1vw, 3.1rem);
    line-height: 0.96;
  }

  .shell-body.practice-page[data-layout-mode='landscape-side'] .practice-hero-panel {
    min-height: 12.4rem;
    padding: 0.86rem;
  }

  .shell-body.practice-page[data-layout-mode='landscape-side'] .practice-hero-panel .shell-illustration {
    min-height: 8.8rem;
  }
}

/* =========================================================
   Plate System Boundary — V8
   shell-illustrations.css owns legacy decorative illustrations only.
   Compiled .panel-plate-template diagrams are excluded from this layer.
   ========================================================= */

.panel-plate-template.is-plate-compiled .shell-illustration__plate,
.panel-plate-template.is-plate-compiled .shell-illustration__focus,
.panel-plate-template.is-plate-compiled .shell-illustration__lane,
.panel-plate-template.is-plate-compiled .shell-illustration__connector {
  all: revert-layer;
}
