/* JPDrills Auth Surface Calm Capability V1 */
body.jp-auth-page {
  --auth-ink: #163047;
  --auth-blue: #2F6EA3;
  --auth-blue-hover: #245C8A;
  --auth-body: #4D6474;
  --auth-quiet: #6F8190;
  --auth-warm: #FFFDF9;
  --auth-white: #FFFFFF;
  --auth-cream: #FCFAF6;
  --auth-stone: #E4DDD3;
  --auth-pale-blue: #F7FBFF;
  --auth-font-sans: "JPDrills Inter", "JPDrills NotoJP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: var(--auth-warm);
  color: var(--auth-body);
  font-family: var(--auth-font-sans);
  line-height: 1.5;
}

body.jp-auth-page,
.jp-auth-page .wrap,
.jp-auth-page main {
  background: var(--auth-warm);
}

.jp-auth-page .jp-public-footer {
  padding-top: 0;
}

.jp-auth-page .jp-public-footer p {
  font-family: inherit;
}

.jp-auth-page .jp-auth-shell,
.jp-auth-page .jp-auth-shell *,
.jp-auth-page .jp-auth-shell *::before,
.jp-auth-page .jp-auth-shell *::after {
  box-sizing: border-box;
}

.jp-auth-page .jp-auth-shell,
.jp-auth-page .jp-auth-card,
.jp-auth-page .jp-auth-card p,
.jp-auth-page .jp-auth-card small,
.jp-auth-page .jp-auth-card label,
.jp-auth-page .jp-auth-card input,
.jp-auth-page .jp-auth-card button,
.jp-auth-page .jp-auth-card a {
  font-family: var(--auth-font-sans) !important;
}

.jp-auth-page .jp-auth-shell {
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  padding: 5rem 1rem 4.5rem;
}

.jp-auth-page .jp-auth-card {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 32px;
  background: var(--auth-white);
  border: 1px solid var(--auth-stone);
  border-radius: 8px;
  box-shadow: 0 18px 42px rgba(22, 48, 71, .08);
  color: var(--auth-body);
}

.jp-auth-page .jp-auth-card p {
  margin: 0 0 1rem;
  color: var(--auth-body);
  line-height: 1.55;
}

.jp-auth-page .jp-auth-card p:last-child {
  margin-bottom: 0;
}

.jp-auth-page .jp-auth-card h5 {
  margin: 0 0 .75rem;
  color: var(--auth-ink);
  font-size: 1.125rem;
  line-height: 1.3;
}

.jp-auth-page .jp-auth-kicker {
  margin: 0 0 6px;
  color: var(--auth-quiet);
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.35;
}

.jp-auth-page .jp-auth-title {
  margin: 0;
  color: var(--auth-ink);
  font-size: 1.35rem;
  line-height: 1.25;
}

.jp-auth-page .jp-auth-title strong {
  font-weight: 750;
}

.jp-auth-page .jp-auth-sub {
  margin: 7px 0 0;
  color: var(--auth-body);
  line-height: 1.55;
}

.jp-auth-page .jp-auth-sub small {
  color: inherit;
  font-size: .95rem;
}

.jp-auth-page .jp-auth-provider-hero {
  width: 100%;
  max-width: 440px;
  min-width: 0;
  margin: 26px auto 0;
  text-align: center;
}

.jp-auth-page .jp-auth-card .g_id_signin {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 16px 0 14px;
  text-align: center;
  overflow-x: hidden;
}

.jp-auth-page .jp-auth-card .g_id_signin > div {
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
}

.jp-auth-page #gsiLoginBtnWrap {
  display: block;
  width: auto;
  max-width: none;
  min-width: 0;
  margin: 10px 0 14px;
  overflow: visible;
}

.jp-auth-page .jp-auth-card .g_id_signin iframe,
.jp-auth-page #gsiLoginBtnWrap iframe {
  max-width: 100% !important;
}

.jp-auth-page .jp-auth-check {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 0;
  color: var(--auth-body);
  font-size: .95rem;
  line-height: 1.4;
}

.jp-auth-page .jp-auth-provider-hero .jp-auth-check,
.jp-auth-page #registration-request-results > .jp-auth-check {
  justify-content: center;
  color: var(--auth-quiet);
  font-size: .9rem;
}

.jp-auth-page .jp-auth-check input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--auth-blue);
}

.jp-auth-page .jp-auth-check input[type="checkbox"]:focus-visible {
  outline: 2px solid rgba(47, 110, 163, .45);
  outline-offset: 2px;
  box-shadow: none;
}

.jp-auth-page .jp-auth-alt,
.jp-auth-page .jp-auth-inline-hint,
.jp-auth-page .jp-auth-legal,
.jp-auth-page .jp-auth-recovery-links {
  color: var(--auth-quiet);
  font-size: .95rem;
  line-height: 1.55;
  text-align: center;
}

.jp-auth-page .jp-auth-alt {
  margin-top: 16px;
}

.jp-auth-page .jp-auth-provider-hero .jp-auth-alt {
  margin-top: 28px;
}

.jp-auth-page .jp-auth-inline-hint {
  margin-top: 10px;
}

.jp-auth-page .jp-auth-inline-hint small,
.jp-auth-page .jp-auth-legal {
  font-size: .86rem;
}

.jp-auth-page .jp-auth-legal {
  margin-top: 16px;
}

.jp-auth-page .jp-auth-card a {
  color: var(--auth-blue);
  text-decoration: none;
}

.jp-auth-page .jp-auth-card a:hover,
.jp-auth-page .jp-auth-card a:focus {
  color: var(--auth-blue-hover);
  text-decoration: underline;
}

.jp-auth-page .jp-auth-card a:focus-visible {
  outline: 2px solid rgba(47, 110, 163, .45);
  outline-offset: 2px;
  border-radius: 2px;
}

.jp-auth-page .jp-auth-card a.jp-auth-btn,
.jp-auth-page .jp-auth-card a.jp-auth-btn:hover,
.jp-auth-page .jp-auth-card a.jp-auth-btn:focus {
  text-decoration: none;
}

.jp-auth-page .jp-auth-details {
  margin-top: 18px;
}

.jp-auth-page .jp-auth-details[open] {
  margin-top: 18px;
}

.jp-auth-page #emailDetailsReg > summary {
  display: none;
}

.jp-auth-page .jp-auth-details .form-group {
  margin-top: 12px;
  margin-bottom: 0;
}

.jp-auth-page .jp-auth-details label {
  margin-bottom: 6px;
  color: var(--auth-ink);
  font-weight: 650;
  line-height: 1.35;
}

.jp-auth-page .jp-auth-card .form-control {
  width: 100%;
  min-height: 46px;
  padding: .78rem .9rem !important;
  background: var(--auth-white);
  border: 1px solid var(--auth-stone);
  border-radius: 4px !important;
  box-shadow: none;
  color: var(--auth-ink);
  font-size: 1rem;
  line-height: 1.45;
}

.jp-auth-page .jp-auth-card .form-control::placeholder {
  color: var(--auth-quiet);
  opacity: .82;
}

.jp-auth-page .jp-auth-card .form-control:focus {
  border-color: var(--auth-blue);
  box-shadow: 0 0 0 3px rgba(47, 110, 163, .16);
  outline: none;
}

.jp-auth-page .jp-auth-card .jp-auth-btn,
.jp-auth-page .jp-auth-card .btn.jp-auth-btn,
.jp-auth-page .jp-auth-card .btn-info.jp-auth-btn {
  min-height: 46px;
  padding: .9rem 1rem !important;
  background: var(--auth-blue) !important;
  border-color: var(--auth-blue) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  color: var(--auth-white) !important;
  font-size: 1rem !important;
  font-weight: 700;
  line-height: 1.35;
  text-shadow: none;
  transition: background-color .12s ease, border-color .12s ease, color .12s ease;
}

.jp-auth-page .jp-auth-card .jp-auth-btn:hover,
.jp-auth-page .jp-auth-card .jp-auth-btn:focus,
.jp-auth-page .jp-auth-card .btn-info.jp-auth-btn:hover,
.jp-auth-page .jp-auth-card .btn-info.jp-auth-btn:focus {
  background: var(--auth-blue-hover) !important;
  border-color: var(--auth-blue-hover) !important;
  color: var(--auth-white) !important;
}

.jp-auth-page .jp-auth-card .jp-auth-btn:focus,
.jp-auth-page .jp-auth-card .jp-auth-btn:focus-visible {
  outline: 2px solid rgba(47, 110, 163, .5) !important;
  outline-offset: 2px;
  box-shadow: 0 0 0 3px rgba(47, 110, 163, .18) !important;
}

.jp-auth-page .jp-auth-card .jp-auth-btn:disabled,
.jp-auth-page .jp-auth-card .jp-auth-btn.disabled {
  background: rgba(47, 110, 163, .62) !important;
  border-color: rgba(47, 110, 163, .1) !important;
  color: var(--auth-white) !important;
  opacity: 1;
}

.jp-auth-page .jp-auth-details .jp-auth-btn {
  margin-top: 14px;
}

.jp-auth-page .jp-auth-links {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  font-size: .95rem;
}

.jp-auth-page .jp-auth-row2 {
  display: flex;
  gap: 12px;
  margin-top: 12px;
}

.jp-auth-page .jp-auth-col {
  flex: 1;
  min-width: 0;
}

.jp-auth-page #passStatus,
.jp-auth-page #reg-status {
  margin-top: 10px;
  color: var(--auth-body);
  font-size: .92rem;
}

.jp-auth-page #passStatus p {
  margin: 0;
}

.jp-auth-page .jp-input-error {
  border-color: #B9473F !important;
  box-shadow: 0 0 0 3px rgba(185, 71, 63, .14) !important;
}

.jp-auth-page .text-info {
  color: var(--auth-body) !important;
}

.jp-auth-page .text-warning {
  color: #8A5A11 !important;
}

.jp-auth-page .text-danger {
  color: #9C2B25 !important;
}

.jp-auth-page .text-success,
.jp-auth-page .fa-check.text-success {
  color: #177245 !important;
}

.jp-auth-page #passStatus small[style*="#e56659"] {
  color: #9C2B25 !important;
}

.jp-auth-page #passStatus small[style*="#00cf63"] {
  color: #177245 !important;
}

.jp-auth-page .notice {
  display: none;
  margin-top: .85rem;
  padding: 10px 12px;
  border: 1px solid var(--auth-stone);
  border-radius: 6px;
  font-size: .95rem;
  line-height: 1.45;
  opacity: 0;
  transition: opacity .18s ease;
}

.jp-auth-page .notice.show {
  display: block;
  opacity: 1;
}

.jp-auth-page .notice--info {
  background: var(--auth-pale-blue);
  border-color: #D9E9F6;
  color: #214861;
}

.jp-auth-page .notice--warn {
  background: #FFF9EC;
  border-color: #EFE0B9;
  color: #725116;
}

.jp-auth-page .notice--error {
  background: #FFF6F4;
  border-color: #EBC9C4;
  color: #842F28;
}

.jp-auth-page .notice--success {
  background: #F4FBF6;
  border-color: #CBE7D2;
  color: #1F633B;
}

.jp-auth-page .jp-auth-recovery-actions {
  margin-top: 18px;
}

.jp-auth-page .jp-auth-recovery-links {
  margin-top: 12px;
}

.jp-auth-page #reg-msg,
.jp-auth-page #login-msg,
.jp-auth-page #emailDetails,
.jp-auth-page #emailDetailsReg {
  scroll-margin-top: 96px;
}

@media (max-width: 768px) {
  .jp-auth-page .jp-auth-row2 {
    flex-direction: column;
  }
}

@media (max-width: 480px) {
  .jp-auth-page .jp-auth-shell {
    padding: 3rem 14px 3.25rem;
  }

  .jp-auth-page .jp-auth-card {
    padding: 24px 18px;
  }

  .jp-auth-page .jp-auth-title {
    font-size: 1.25rem;
  }

  .jp-auth-page .jp-auth-links {
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 6px;
  }
}
