/* Shared sitewide theme; imported by src/styles.css and every static page. */
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 100 800; font-display: swap; src: url('/fonts/sora-latin.woff2') format('woff2'); }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap; src: url('/fonts/manrope-latin.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/ibm-plex-mono-latin.woff2') format('woff2'); }
:root, :root[data-theme], :root.dark {
  color-scheme: dark;
  --site-canvas: oklch(0.27 0.01 275);
  --site-surface: oklch(0.305 0.012 275);
  --site-raised: oklch(0.35 0.015 275);
  --site-strong: oklch(1 0 0);
  --site-body: oklch(0.956 0.005 250);
  --site-muted: oklch(0.835 0.012 250);
  --site-line: oklch(0.61 0.016 260);
  --site-crimson: oklch(0.595 0.229 22);
  --site-button: oklch(0.49 0.185 19);
  --site-secondary: oklch(0.49 0.02 250);
  --site-heading-font: 'Sora', system-ui, sans-serif;
  --site-body-font: 'Manrope', system-ui, sans-serif;
  --site-mono-font: 'IBM Plex Mono', monospace;
  --background: var(--site-canvas);
  --foreground: var(--site-body);
  --card: var(--site-surface);
  --card-foreground: var(--site-body);
  --popover: var(--site-surface);
  --popover-foreground: var(--site-body);
  --primary: var(--site-button);
  --primary-foreground: var(--site-strong);
  --secondary: var(--site-secondary);
  --secondary-foreground: var(--site-strong);
  --muted: var(--site-surface);
  --muted-foreground: var(--site-muted);
  --accent: var(--site-raised);
  --accent-foreground: var(--site-strong);
  --border: var(--site-line);
  --input: var(--site-line);
  --ring: var(--site-strong);
  --panel-bg: var(--site-canvas);
  --panel-bg-raised: var(--site-raised);
  --text-strong: var(--site-strong);
  --text-body: var(--site-body);
  --text-muted: var(--site-muted);
  --titanium-text: var(--site-muted);
  --crimson-text: var(--site-strong);
  --crimson-fill: var(--site-button);
  --titanium-fill: var(--site-secondary);
  /* Legacy static templates use several names for the same theme roles. */
  --bg: var(--site-canvas) !important;
  --navy-deep: var(--site-canvas) !important;
  --navy: var(--site-surface) !important;
  --navy-panel: var(--site-raised) !important;
  --panel: var(--site-surface) !important;
  --panel-alt: var(--site-raised) !important;
  --paper: var(--site-strong) !important;
  --paper-dim: var(--site-body) !important;
  --ink: var(--site-body) !important;
  --text: var(--site-body) !important;
  --ink-dim: var(--site-body) !important;
  --ink-faint: var(--site-muted) !important;
  --muted-2: var(--site-muted) !important;
  --line: var(--site-line) !important;
  --rule: var(--site-line) !important;
  --card-border: var(--site-line) !important;
  --cyan: var(--site-muted) !important;
  --amber: var(--site-crimson) !important;
  --amber-dim: var(--site-strong) !important;
  --crimson: var(--site-crimson) !important;
  --brand: var(--site-crimson) !important;
  --brand-soft: var(--site-surface) !important;
  --amber-soft: var(--site-surface) !important;
  --band: var(--site-surface) !important;
  --band-ink: var(--site-strong) !important;
  --font-display: var(--site-heading-font) !important;
  --font-body: var(--site-body-font) !important;
  --font-mono: var(--site-mono-font) !important;
  --sans: var(--site-body-font) !important;
  --serif: var(--site-body-font) !important;
}
html, body {
  background: var(--site-canvas) !important;
  color: var(--site-body) !important;
  font-family: var(--site-body-font) !important;
  -webkit-font-smoothing: antialiased;
}
/* Remove stacked legacy fog layers that changed text contrast page by page. */
html::before, body::before, body::after, .titanium-fog { display: none !important; }
body *:not(svg):not(svg *) {
  font-family: var(--site-body-font) !important;
  letter-spacing: 0 !important;
}
html body :is(h1,h2,h3,h4,h5,h6):not(svg):not(svg *), html body :is(h1,h2,h3,h4,h5,h6) *:not(svg):not(svg *),
html body .lsn-logo:not(svg):not(svg *), html body .lsn-logo *:not(svg):not(svg *), html body .logo:not(svg):not(svg *) {
  font-family: var(--site-heading-font) !important;
  font-stretch: normal;
  color: var(--site-strong) !important;
}
html body :is(code,pre,kbd,samp,.mono,.eyebrow,.g-eyebrow,.stat-num,.segment-label):not(svg):not(svg *),
html body [style*="monospace"]:not(p):not(h1):not(h2):not(h3):not(svg *) {
  font-family: var(--site-mono-font) !important;
}
html body :is(p,li,td,dd,dt,div,span,a,label,summary,blockquote,strong,b,em,q):not(svg *) {
  color: var(--site-body) !important;
}
body :is(small,figcaption,.crumb,.hero-sub,.dek,.stat-label,.amn-byline),
body :is(small,figcaption,.crumb,.amn-byline) * {
  color: var(--site-muted) !important;
}
body :is(header,footer,.hero,.cta-band,.masthead), body main > section {
  background: var(--site-canvas) !important;
}
body :is(.plate,.pillar,.stat-block,.g-answer,.g-card,.g-faq details,.card,.hub-card,
  .timeline-card,.callout,.example,.diagram,.table-scroll,.matrix-row.head,
  .lsn-panel,.nav-dropdown-menu,.sub-menu,.tooltip) {
  background: var(--site-surface) !important;
}
/* Email-exported articles have inline white cells and Arial typography. */
body :is(center,table[role="presentation"],table[role="presentation"] td) {
  background: var(--site-canvas) !important;
}
body :is(input,select,textarea) {
  background: var(--site-surface) !important;
  color: var(--site-strong) !important;
  border-color: var(--site-line) !important;
}
body :is(input,textarea)::placeholder { color: var(--site-muted) !important; opacity: 1; }
body :is(.btn-solid,.primary,.lsn-cta-crimson,.press-cta,.skip-link),
body a[style*="background:#B3122E"], body a[style*="background: #B3122E"],
body a[style*="background:#E8213C"], body a[style*="background: #E8213C"] {
  background: var(--site-button) !important;
  color: var(--site-strong) !important;
}
body :is(.btn,.button,.lsn-cta,.lsn-cta-crimson,button,input[type="submit"]) {
  color: var(--site-strong) !important;
}
body a:hover, body #lovable-site-nav a:hover,
body header nav a:hover, body .nav-dropdown-menu a:hover {
  color: var(--site-strong) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--site-crimson) !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 5px;
}
body :is(p,li,td,figcaption) a { text-decoration: underline; text-underline-offset: 3px; }
body :focus-visible { outline: 2px solid var(--site-strong) !important; outline-offset: 3px; }
::selection { background: var(--site-button); color: var(--site-strong); }
html body #lovable-site-nav .lsn-portal {
  color: var(--site-strong) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--site-crimson) !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 5px;
}
/* The FMEA article uses --paper as its canvas rather than its text color. */
html.site-editorial { --paper: var(--site-canvas) !important; }
html.site-editorial .steps li::before { background: var(--site-button); color: var(--site-strong) !important; }
html.site-editorial svg text { font-family: var(--site-body-font) !important; }
html body p:not(svg *) { font-family: var(--site-body-font) !important; }/* Unified shape system: two corner sizes, two shadow depths. */
:root { --site-radius-sm: 6px; --site-radius-lg: 12px;
  --site-shadow-1: 0 1px 2px rgb(0 0 0 / .35), 0 4px 12px rgb(0 0 0 / .25);
  --site-shadow-2: 0 8px 28px rgb(0 0 0 / .45); }
body :is(.card,.panel,.box,.callout,.tile,figure,table,pre,blockquote,section[class*="card"],div[class*="card"]) {
  border-radius: var(--site-radius-lg) !important; }
body :is(.btn,.button,.btn-solid,.primary,.lsn-cta,.lsn-cta-crimson,.press-cta,button,input,select,textarea,.tag,.pill,.badge) {
  border-radius: var(--site-radius-sm) !important; }
body :is(.card,.panel,.box,.tile,div[class*="card"]) { box-shadow: var(--site-shadow-1) !important; }
body :is(.card,.tile,div[class*="card"]):hover { box-shadow: var(--site-shadow-2) !important; }
/* Article pages share the charcoal theme instead of light/email canvases. */
body.site-article, html.site-editorial body { background: var(--site-canvas) !important; }
html body :is(table,td,div,center)[bgcolor], html body [style*="background:#fff"], html body [style*="background-color:#fff"],
html body [style*="background: #fff"], html body [style*="background-color: #fff"], html body [style*="background:#ffffff"],
html body [style*="background-color:#ffffff"], html body [style*="background-color: #ffffff"] {
  background: var(--site-surface) !important; color: var(--site-body) !important; }
html body [style*="Arial"], html body font { font-family: var(--site-body-font) !important; }

/* Item 9: one shared hover / press / keyboard feel for every button */
body :is(button, .btn, a.btn, [class*="btn"], [class*="button"], [class*="cta"], input[type="submit"], input[type="button"], [role="button"]):not(#lovable-site-nav *):not(.nav-dropdown-menu *) {
  transition: transform .15s ease, filter .15s ease, box-shadow .15s ease, background-color .15s ease !important;
  cursor: pointer;
}
body :is(button, .btn, a.btn, [class*="btn"], [class*="button"], [class*="cta"], input[type="submit"], input[type="button"], [role="button"]):not(#lovable-site-nav *):not(.nav-dropdown-menu *):hover {
  filter: brightness(1.12);
  transform: translateY(-1px);
  box-shadow: var(--site-shadow-2, 0 6px 18px rgb(0 0 0 / .35)) !important;
}
body :is(button, .btn, a.btn, [class*="btn"], [class*="button"], [class*="cta"], input[type="submit"], input[type="button"], [role="button"]):not(#lovable-site-nav *):not(.nav-dropdown-menu *):active {
  filter: brightness(.94);
  transform: translateY(1px) scale(.98);
  box-shadow: none !important;
}
body :is(button, .btn, [class*="btn"], [class*="button"], [class*="cta"], input[type="submit"], [role="button"]):focus-visible {
  outline: 2px solid var(--site-strong) !important; outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--site-crimson) !important;
}
body :is(button, input[type="submit"]):disabled { filter: grayscale(.6) opacity(.6); transform: none; cursor: not-allowed; }
@media (prefers-reduced-motion: reduce) {
  body :is(button, .btn, [class*="btn"], [class*="button"], [class*="cta"], [role="button"]) { transition: none !important; transform: none !important; }
}

/* Phone fit (audit item 10) */
@media (max-width: 600px) {
  .diagram-wrap svg { min-width: 0 !important; width: 100% !important; height: auto; }
  #lovable-site-nav .lsn-logo span { white-space: nowrap; font-size: 15px !important; }
}
