.gpsea-portal {
  --gpsea-portal-navy: #173454;
  --gpsea-portal-navy-dark: #102943;
  --gpsea-portal-gold: #f4c546;
  --gpsea-portal-text: #263d56;
  --gpsea-portal-muted: #687a8f;
  --gpsea-portal-border: #dbe4ee;
  box-sizing: border-box;
  min-width: 0;
  min-height: 100vh;
  margin: 0;
  background: #f3f6fa;
  color: var(--gpsea-portal-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
  line-height: 1.65;
  -webkit-text-size-adjust: 100%;
}
body:has(> .gpsea-portal) { margin: 0; background: #f3f6fa; }
.gpsea-portal *, .gpsea-portal *::before, .gpsea-portal *::after { box-sizing: border-box; }
.gpsea-portal [hidden] { display: none !important; }
.gpsea-portal .gpsea-portal-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  min-height: 86px;
  margin: 0;
  padding: 17px clamp(20px, 4vw, 64px);
  border-bottom: 1px solid var(--gpsea-portal-border);
  background: #fff;
  box-shadow: 0 2px 12px #17345403;
}
.gpsea-portal .gpsea-portal-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  color: var(--gpsea-portal-navy);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}
.gpsea-portal .gpsea-portal-nav > a:first-child, .gpsea-portal .gpsea-portal-brand {
  gap: 10px;
  color: var(--gpsea-portal-navy);
  font-size: 21px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -.4px;
}
.gpsea-portal .gpsea-portal-nav a:hover { color: #8a681a; }
.gpsea-portal .gpsea-portal-nav > a:first-child:hover, .gpsea-portal .gpsea-portal-brand:hover { color: var(--gpsea-portal-navy-dark); }
.gpsea-portal .gpsea-portal-brand span { color: #9b761a; font-size: 11px; font-weight: 750; letter-spacing: 1.8px; }
.gpsea-portal .gpsea-portal-nav > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px 20px; min-width: 0; }
.gpsea-portal .gpsea-identity { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px 18px; max-width: 100%; color: var(--gpsea-portal-muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.gpsea-portal .gpsea-identity strong { color: var(--gpsea-portal-navy); font-weight: 650; }
.gpsea-portal .gpsea-identity a { font-size: 12px; text-decoration: underline; text-decoration-color: #c6d3e1; text-underline-offset: 4px; }
.gpsea-portal .gpsea-auth-shell {
  display: grid;
  align-content: center;
  justify-items: center;
  min-height: calc(100vh - 86px);
  min-height: calc(100dvh - 86px);
  margin: 0;
  padding: 45px 22px 56px;
}
.gpsea-portal .gpsea-auth-card {
  width: 100%;
  max-width: 470px;
  min-width: 0;
  margin: 0;
  padding: 32px;
  border: 1px solid var(--gpsea-portal-border);
  border-top: 3px solid var(--gpsea-portal-gold);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 40px #17345408;
}
.gpsea-portal .gpsea-auth-card h1, .gpsea-portal .gpsea-auth-card h2 {
  margin: 0 0 9px;
  padding: 0;
  color: var(--gpsea-portal-navy);
  font-family: inherit;
  font-size: 27px;
  font-weight: 750;
  line-height: 1.3;
  letter-spacing: -.5px;
}
.gpsea-portal .gpsea-auth-card > p { margin: 0 0 20px; color: var(--gpsea-portal-muted); font-size: 13px; line-height: 1.75; }
.gpsea-portal .gpsea-auth-card > .gpsea-auth-help:first-child { margin: 0 0 12px; padding: 0; border: 0; border-radius: 0; background: transparent; color: #8f6d1d; font-size: 10px; font-weight: 750; line-height: 1.6; letter-spacing: 1.3px; }
.gpsea-portal .gpsea-auth-card form { margin: 0; padding: 0; }
.gpsea-portal .gpsea-auth-tabs { display: flex; gap: 4px; margin: 23px 0; padding: 4px; border: 1px solid #e1e8f0; border-radius: 8px; background: #f3f6fa; }
.gpsea-portal .gpsea-auth-tabs :is(a, button) { display: inline-flex; flex: 1 1 0; align-items: center; justify-content: center; min-width: 0; min-height: 40px; margin: 0; padding: 9px 10px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: #657a90; font-family: inherit; font-size: 12px; font-weight: 650; line-height: 1.5; text-align: center; text-decoration: none; cursor: pointer; }
.gpsea-portal .gpsea-auth-tabs :is(a, button):hover { color: var(--gpsea-portal-navy); }
.gpsea-portal .gpsea-auth-tabs :is([aria-selected="true"], [aria-current="page"], .is-active) { border-color: #d9e2ec; background: #fff; color: var(--gpsea-portal-navy); box-shadow: 0 1px 4px #17345408; }
.gpsea-portal .gpsea-auth-field { display: block; min-width: 0; margin: 0 0 17px; padding: 0; color: var(--gpsea-portal-navy); font-size: 12px; font-weight: 650; line-height: 1.6; }
.gpsea-portal .gpsea-auth-field label { display: block; margin: 0; padding: 0; color: var(--gpsea-portal-navy); font-size: 12px; font-weight: 650; line-height: 1.6; }
.gpsea-portal .gpsea-auth-field input:not([type="checkbox"]):not([type="hidden"]) { display: block; width: 100%; min-width: 0; min-height: 46px; margin: 7px 0 0; padding: 11px 13px; border: 1px solid #cbd7e4; border-radius: 7px; background: #fff; color: var(--gpsea-portal-text); font-family: inherit; font-size: 14px; font-weight: 400; line-height: 1.5; box-shadow: none; transition: border-color .15s ease, box-shadow .15s ease; }
.gpsea-portal .gpsea-auth-field input::placeholder { color: #8a99aa; font-size: 12px; }
.gpsea-portal .gpsea-auth-field input:focus { border-color: #b48c28; outline: 3px solid #f4c54640; outline-offset: 1px; box-shadow: none; }
.gpsea-portal .gpsea-auth-field input[aria-invalid="true"] { border-color: #cb5b52; background: #fffafa; }
.gpsea-portal .gpsea-auth-field input:disabled { background: #f0f3f7; color: #7c8b9b; cursor: default; }
.gpsea-portal .gpsea-auth-field small { display: block; margin-top: 6px; color: var(--gpsea-portal-muted); font-size: 11px; line-height: 1.6; }
.gpsea-portal .gpsea-auth-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 46px; margin: 6px 0 0; padding: 11px 18px; border: 1px solid #e3b337; border-radius: 7px; background: var(--gpsea-portal-gold); color: var(--gpsea-portal-navy-dark); font-family: inherit; font-size: 13px; font-weight: 750; line-height: 1.5; text-align: center; text-decoration: none; cursor: pointer; box-shadow: none; transition: background .15s ease, border-color .15s ease; }
.gpsea-portal .gpsea-auth-button:hover { border-color: #d5a120; background: #ffcf59; color: var(--gpsea-portal-navy-dark); }
.gpsea-portal .gpsea-auth-button:disabled { opacity: .55; cursor: default; }
.gpsea-portal .gpsea-auth-notice { margin: 0 0 20px; padding: 12px 14px; border: 1px solid #ceddeb; border-left-width: 3px; border-radius: 6px; background: #f0f5fa; color: #365b7e; font-size: 12px; line-height: 1.75; overflow-wrap: anywhere; }
.gpsea-portal .gpsea-auth-notice:empty { display: none; }
.gpsea-portal .gpsea-auth-notice[data-kind="success"] { border-color: #b6d9c4; background: #eff8f2; color: #2a6945; }
.gpsea-portal .gpsea-auth-notice[data-kind="error"] { border-color: #e8c0bb; background: #fff3f1; color: #a03f36; }
.gpsea-portal .gpsea-auth-notice p { margin: 0; color: inherit; font-size: inherit; line-height: inherit; }
.gpsea-portal .gpsea-auth-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 9px 18px; margin: 22px 0 0; padding-top: 18px; border-top: 1px solid #e7edf3; color: var(--gpsea-portal-muted); font-size: 12px; line-height: 1.7; }
.gpsea-portal .gpsea-auth-links a, .gpsea-portal .gpsea-auth-help a, .gpsea-portal .gpsea-auth-notice a { color: var(--gpsea-portal-navy); font-weight: 650; text-decoration: underline; text-decoration-color: #bdcddd; text-underline-offset: 3px; }
.gpsea-portal .gpsea-auth-links a:hover, .gpsea-portal .gpsea-auth-help a:hover, .gpsea-portal .gpsea-auth-notice a:hover { color: #8a681a; text-decoration-color: currentColor; }
.gpsea-portal .gpsea-auth-help { display: block; margin: 19px 0 0; padding: 11px 13px; border: 1px solid #eddfb8; border-left: 3px solid #ddba52; border-radius: 6px; background: #fff9e9; color: #78612f; font-size: 11px; line-height: 1.75; }
.gpsea-portal label.gpsea-auth-help { display: flex; align-items: flex-start; gap: 8px; }
.gpsea-portal .gpsea-auth-help input[type="checkbox"] { flex: 0 0 auto; width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--gpsea-portal-navy); }
.gpsea-portal .gpsea-auth-help p { margin: 0; font-size: inherit; line-height: inherit; }
.gpsea-portal :is(a, button, input):focus-visible { outline: 3px solid #b88d24; outline-offset: 4px; }
.gpsea-portal #gpsea-app { width: calc(100% - 48px); max-width: 1480px; margin: 28px auto 38px; }
@media (max-width: 700px) {
  .gpsea-portal .gpsea-portal-nav { min-height: 76px; gap: 8px 16px; padding: 14px 20px; }
  .gpsea-portal .gpsea-portal-nav > a:first-child, .gpsea-portal .gpsea-portal-brand { font-size: 19px; }
  .gpsea-portal .gpsea-identity { justify-content: flex-start; gap: 4px 12px; font-size: 11px; }
  .gpsea-portal .gpsea-auth-shell { min-height: calc(100vh - 76px); min-height: calc(100dvh - 76px); padding: 28px 16px 38px; }
  .gpsea-portal .gpsea-auth-card { max-width: 450px; padding: 26px 23px; border-radius: 11px; }
  .gpsea-portal .gpsea-auth-card h1, .gpsea-portal .gpsea-auth-card h2 { font-size: 25px; }
  .gpsea-portal .gpsea-auth-links { align-items: flex-start; }
  .gpsea-portal #gpsea-app { width: calc(100% - 24px); margin: 18px auto 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .gpsea-portal .gpsea-auth-field input, .gpsea-portal .gpsea-auth-button { transition: none; }
}
