/* Shared public header only. Never changes the signed-in application sidebar. */
.public-header { position: sticky; top: 0; z-index: 1000; background: #fff; color: #131b38; border-bottom: 1px solid #e4e7ef; font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.public-header, .public-header * { box-sizing: border-box; }
.public-header__inner { width: min(1240px, calc(100% - 48px)); min-height: 84px; margin-inline: auto; display: grid; grid-template-columns: minmax(160px, 1fr) auto minmax(180px, 1fr); gap: 20px; align-items: center; }
.public-brand { display: inline-flex; width: 200px; max-width: 100%; align-items: center; text-decoration: none; }
.public-brand img { display: block; width: 100%; height: auto; aspect-ratio: 400 / 132; object-fit: contain; }
.public-header a { color: inherit; text-decoration: none; }
.public-nav { display: flex; align-items: center; justify-content: center; gap: 4px; }
.public-nav > a, .public-mobile__panel nav > a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 12px; border-radius: 8px; font-size: 15px; font-weight: 600; line-height: 1.4; white-space: nowrap; transition: background-color 120ms ease, color 120ms ease; }
.public-nav > a:hover, .public-mobile__panel nav > a:hover { background: #f5f3ff; color: #5224c8; }
.public-nav > a[aria-current], .public-mobile__panel nav > a[aria-current] { color: #5224c8; background: #f0ebff; box-shadow: inset 0 -2px #7340e4; }
.public-account { display: flex; gap: 10px; justify-content: flex-end; align-items: center; }
.public-header .public-login, .public-header .public-start { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 17px; border: 1px solid #dde1eb; border-radius: 10px; font-size: 15px; font-weight: 650; line-height: 1.4; white-space: nowrap; }
.public-header .public-login { background: #fff; }
.public-header .public-login:hover { background: #f6f7fc; border-color: #b8bad0; }
.public-header .public-start { border-color: transparent; color: #fff; background: linear-gradient(115deg, #7137e6, #315eea); box-shadow: 0 3px 8px rgba(91,63,203,.12); }
.public-header .public-start:hover { background: linear-gradient(115deg, #6024d4, #254fd8); }
.public-header a:focus-visible, .public-mobile > summary:focus-visible { outline: 3px solid #3276eb; outline-offset: 3px; }
.public-mobile { display: none; position: relative; }
.public-mobile > summary { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 13px; border: 1px solid #dde1eb; border-radius: 10px; font: inherit; font-size: 15px; font-weight: 650; line-height: 1.4; cursor: pointer; list-style: none; }
.public-mobile > summary::-webkit-details-marker { display: none; }
.public-mobile > summary::marker { content: ''; }
.public-mobile > summary svg { display: block; flex-shrink: 0; }
.public-mobile__panel { position: absolute; top: calc(100% + 12px); right: 0; width: min(350px, calc(100vw - 32px)); padding: 12px; background: #fff; border: 1px solid #dce0ed; border-radius: 14px; box-shadow: 0 12px 36px rgba(20,25,50,.16); max-height: calc(100dvh - 92px); overflow-y: auto; overscroll-behavior: contain; }
.public-mobile__panel nav { display: grid; gap: 4px; }
.public-mobile__panel nav > a { min-height: 48px; white-space: normal; }
.public-mobile__account { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding-top: 12px; margin-top: 12px; border-top: 1px solid #e4e7ef; }
@media (max-width: 66em) {
  .public-header__inner { min-height: 76px; grid-template-columns: minmax(0, 1fr) auto; }
  .public-brand { width: 184px; }
  .public-nav, .public-account { display: none; }
  .public-mobile { display: block; }
}
@media (max-width: 420px) {
  .public-header__inner { width: calc(100% - 32px); gap: 12px; min-height: 70px; }
  .public-brand { width: 166px; }
}
@media (prefers-reduced-motion: reduce) { .public-header * { transition: none !important; } }
@media print { .public-header { display: none; } }

/* A standalone 404 also works in an app-only build without marketing assets. */
.public-error-page { margin: 0; background: #f8f9fd; color: #131b38; font: 16px/1.6 ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.public-error-page .skip-link { position: absolute; left: 12px; top: -90px; z-index: 1100; padding: 10px; background: #fff; color: #131b38; }
.public-error-page .skip-link:focus { top: 12px; }
.public-error-page .error-page { box-sizing: border-box; width: min(780px,calc(100% - 40px)); margin-inline: auto; padding-block: 80px; }
.public-error-page h1 { font-size: clamp(28px,5vw,48px); line-height: 1.2; }
.public-error-page .eyebrow { color: #5224c8; font-weight: 700; }
.public-error-page .hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.public-error-page .error-page a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; border: 1px solid #d5d9e7; border-radius: 8px; text-decoration: none; color: #5224c8; background: white; font-weight: 600; }

.public-brand img { aspect-ratio: 305.824 / 80; height: auto; }
