/* Shared brand accents. Operational success/warning/error colors are separate. */
:root {
  /* Approved art-direction palette. Adoption is scoped to the review lab first. */
  --korppi-raven: #050608;
  --korppi-graphite: #0d1014;
  --korppi-charcoal: #171b21;
  --korppi-mist: #f5f5f3;
  --korppi-snow: #fafaf8;
  --korppi-gray-100: #e8eaed;
  --korppi-gray-200: #d6dadf;
  --korppi-gray-300: #b8c0c7;
  --korppi-ice: #a8d7f2;
  --korppi-ice-deep: #7fbfdb;
  --korppi-success: #a9c8b0;
  --korppi-warning: #d9c59a;
  --korppi-danger: #d7a4a4;
  --korppi-radius-panel: 24px;
  --korppi-radius-card: 16px;
  --korppi-radius-control: 10px;
  --korppi-border-light: #d6dadf;
  --korppi-border-dark: #ffffff26;
  --korppi-shadow: 0 8px 32px #0506080a;
  --accent: #a8c5ff;
  --accent-hover: #c4d8ff;
  --accent-soft: #eef4ff;
  --accent-ink: #14243c;
  --accent-text: #3c5d88;
  --accent-focus: #5275a3;
  --accent-on-dark: #a8c5ff;
  --brand-display: Arial, Helvetica, sans-serif;
  /* Keep photographic detail and natural skin tones without competing with the accent. */
  --brand-photo-filter: saturate(.72) contrast(1.03);
  --motion-duration-fast: 160ms;
  --motion-duration-base: 320ms;
  --motion-route-duration: 240ms;
  --motion-ease: cubic-bezier(.22, 1, .36, 1);
  --motion-reveal-distance: 32px;
  --motion-duration-fast: 160ms;
  --motion-duration-base: 320ms;
  --motion-route-duration: 240ms;
  --motion-ease: cubic-bezier(.22, 1, .36, 1);
  --motion-reveal-distance: 32px;
}

/* Shared accessibility and locale controls used by every website layout. */
.skip-link {
  position: fixed;
  inset-block-start: 8px;
  inset-inline-start: 8px;
  z-index: 1000;
  padding: 12px 18px;
  color: #fff;
  background: #061831;
  transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }
.language-switcher { position: relative; flex: 0 0 auto; font-size: 12px; color: inherit; }
.language-switcher summary { cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 10px 8px; list-style: none; white-space: nowrap; }
.language-switcher summary::-webkit-details-marker { display: none; }
.language-switcher nav { position: absolute; inset-block-start: calc(100% + 6px); inset-inline-end: 0; z-index: 150; min-width: 136px; padding: 6px; background: #f7f7f5; color: #10151b; border: 1px solid #d7d9dc; border-radius: 8px; box-shadow: 0 8px 24px #0002; }
.language-switcher a { display: block; padding: 10px; color: inherit; font: inherit; text-decoration: none; }
.language-switcher a:hover { background: #e5ebf7; }
.language-switcher summary:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
@media (max-width: 980px) { .site-header .language-switcher { grid-column: 1 / -1; } .site-header .language-switcher nav { position: static; display: flex; flex-wrap: wrap; margin: 4px 0 10px; box-shadow: none; } }
.language-switcher a[aria-current] { text-decoration: underline; text-underline-offset: 4px; }
.language-switcher a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.not-found-page .language-switcher { color: #fff; }
@media (max-width: 760px) { .auth-header .language-switcher { color: #e6edff; } .auth-header { gap: 8px; } .auth-header .app-brand-logo { max-width: 34vw; } }
[dir="rtl"] :is(.legal-main, .auth-form-panel, .team-story) { text-align: start; }
.business-translation { margin: 20px 0; padding: 18px; border: 1px solid #c7d1c9; border-radius: 12px; background: #f5f8f5; color: #20372a; overflow-wrap: anywhere; }
.business-translation summary { cursor: pointer; font-weight: 600; }
.business-translation p { font-size: 14px; line-height: 1.6; white-space: pre-wrap; }
.business-translation article { border-top: 1px solid #d8e0da; padding: 10px 0; }
.business-translation article details { font-size: 12px; color: #465a4d; }
/* Quiet, reusable material layers. Strength is local; no global animation. */
.material-paper { --material-strength:.035; background-color:var(--korppi-mist); background-image:repeating-linear-gradient(115deg,transparent 0 2px,rgb(5 6 8 / var(--material-strength)) 2px 3px); }
.material-graphite { --material-strength:.11; background-color:var(--korppi-graphite); background-image:linear-gradient(125deg,rgb(250 250 248 / var(--material-strength)),transparent 32%,#050608 80%); }
.signal-fx { --signal-size:24px; --signal-color:var(--korppi-ice); width:var(--signal-size); height:var(--signal-size); color:var(--signal-color); }
.signal-fx [data-fx-active],.signal-fx [data-fx-confirmed] { opacity:0; }
.signal-fx[data-state="active"] [data-fx-active],.signal-fx[data-state="confirmed"] [data-fx-confirmed] { opacity:1; }
.signal-fx[data-state="active"] [data-fx-active] { transform-origin:center; animation:signal-fx-once 600ms var(--motion-ease) 1 both; }
@keyframes signal-fx-once { from { transform:scale(.7); opacity:.7; } to { transform:scale(1); opacity:.2; } }
@media(prefers-reduced-motion:reduce) { .signal-fx [data-fx-active] { animation:none!important; } }
