/* Mountsol customer-facing system pages: auth, search, errors, portal chrome. */

#wrapwrap.ms-site > header#top,
#wrapwrap.ms-site > footer#bottom {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Login has no inner .ms-summit, so summit_cyan's #wrapwrap > header hide wins
   unless these child-of-wrapwrap rules beat it. */
#wrapwrap.ms-site > header.ms-header,
#wrapwrap.ms-site.ms-summit > header.ms-header,
#wrapwrap.ms-site > footer.ms-footer,
#wrapwrap.ms-site.ms-summit > footer.ms-footer {
  display: block !important;
  height: auto !important;
  overflow: visible !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

#wrapwrap.ms-site > main .ms-header,
#wrapwrap.ms-site > main .ms-footer {
  display: none !important;
}

#wrapwrap.ms-site.o_portal a:not(.ms-header a):not(.ms-footer a) {
  color: revert;
}

#wrapwrap.ms-site.o_portal img:not(.ms-header img):not(.ms-footer img) {
  display: revert;
  max-width: revert;
  height: revert;
}

/* ----- Auth ----- */

#wrapwrap.ms-site:has(.ms-auth-stage) {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-x: clip;
}

#wrapwrap.ms-site:has(.ms-auth-stage) > main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

#wrapwrap.ms-site .ms-auth-stage__anchor {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

#wrapwrap.ms-site section.ms-auth-stage,
.ms-auth-stage {
  --ms-header-offset: var(--ms-header, 80px);
  position: relative;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin-top: calc(-1 * var(--ms-header-offset));
  padding: calc(var(--ms-header-offset) + clamp(1.5rem, 4vh, 3rem)) 0 clamp(2.5rem, 6vh, 4.25rem);
  background:
    radial-gradient(ellipse 90% 70% at 50% -8%, rgba(3, 199, 252, 0.28), transparent 55%),
    radial-gradient(ellipse 62% 48% at 8% 18%, rgba(3, 199, 252, 0.2), transparent 58%),
    radial-gradient(ellipse 50% 42% at 94% 12%, rgba(0, 168, 214, 0.16), transparent 56%),
    linear-gradient(180deg, #d8f2fa 0%, #eef9fc 52%, #f3fafd 100%);
}

.ms-auth-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.35;
  background-image:
    linear-gradient(rgba(0, 28, 36, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 28, 36, 0.045) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.55), transparent 78%);
}

.ms-auth-stage__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  align-items: center;
  gap: clamp(1.75rem, 4vw, 4.5rem);
  width: 100%;
}

.ms-auth-stage__copy {
  min-width: 0;
  max-width: 34rem;
}

.ms-auth-stage__copy .ms-eyebrow {
  margin-bottom: 0.85rem;
}

.ms-auth-stage__title {
  margin: 0 0 0.7rem;
  font-family: var(--ms-text, "DM Sans", system-ui, sans-serif);
  font-size: clamp(2rem, 4.2vw, 3.15rem);
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 1.08;
  color: var(--ms-ink, #0b1f26);
}

.ms-auth-stage__lead {
  margin: 0 0 1.35rem;
  max-width: 32ch;
  color: var(--ms-muted, #5b6b76);
  font-size: clamp(1.02rem, 1.4vw, 1.15rem);
  line-height: 1.6;
}

.ms-auth-stage__aside {
  margin: 0;
  color: var(--ms-muted, #5b6b76);
  font-size: 0.92rem;
  line-height: 1.55;
}

.ms-auth-stage__aside a {
  color: var(--ms-cyan-text, #007ea8);
  font-weight: 600;
  text-decoration: none;
}

.ms-auth-stage__aside a:hover,
.ms-auth-stage__aside a:focus-visible {
  color: var(--ms-cyan-deep, #00a8d6);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.oe_website_login_container.ms-auth {
  width: min(100%, 26.5rem);
  margin: 0 0 0 auto;
  padding: 1.85rem 1.7rem 1.7rem;
  border: 1px solid rgba(3, 199, 252, 0.16);
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.92), #fff 42%),
    #fff;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 24px 50px rgba(0, 28, 36, 0.1);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
}

.ms-auth__intro {
  margin-bottom: 1.25rem;
  text-align: left;
}

.ms-auth__title {
  margin: 0 0 0.35rem;
  font-size: clamp(1.28rem, 2vw, 1.5rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ms-ink, #0b1f26);
  line-height: 1.2;
}

.ms-auth__lead {
  margin: 0;
  color: var(--ms-muted, #5b6b76);
  font-size: 0.92rem;
  line-height: 1.5;
}

.oe_website_login_container.ms-auth .form-label,
.oe_website_login_container.ms-auth .col-form-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ms-ink, #0b1f26);
}

.oe_website_login_container.ms-auth .form-control {
  min-height: 2.9rem;
  border: 1px solid var(--ms-line-strong, #d5dee5);
  border-radius: 12px;
  box-shadow: none;
  font-size: 0.98rem;
  background: #fff;
  transition:
    border-color 160ms ease-out,
    box-shadow 160ms ease-out;
}

.oe_website_login_container.ms-auth .form-control:focus {
  border-color: var(--ms-cyan, #03c7fc);
  box-shadow: 0 0 0 3px rgba(3, 199, 252, 0.18);
}

.oe_website_login_container.ms-auth .input-group .form-control {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.oe_website_login_container.ms-auth .btn-primary {
  min-height: 2.95rem;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(145deg, #1ad0ff 0%, var(--ms-cyan, #03c7fc) 45%, var(--ms-cyan-deep, #00a8d6) 100%);
  color: var(--ms-summit, #001c24);
  font-weight: 700;
  letter-spacing: 0.01em;
  box-shadow: 0 12px 28px rgba(3, 199, 252, 0.28);
  transition:
    transform 140ms ease-out,
    box-shadow 180ms ease-out,
    background 180ms ease-out;
}

.oe_website_login_container.ms-auth .btn-primary:hover,
.oe_website_login_container.ms-auth .btn-primary:focus-visible {
  background: linear-gradient(145deg, #24d6ff 0%, var(--ms-cyan-deep, #00a8d6) 70%);
  color: var(--ms-summit, #001c24);
  box-shadow: 0 16px 34px rgba(3, 199, 252, 0.36);
}

.oe_website_login_container.ms-auth .btn-primary:active {
  transform: scale(0.97);
}

.oe_website_login_container.ms-auth .btn-link,
.oe_website_login_container.ms-auth a.btn-link,
.oe_website_login_container.ms-auth a:not(.btn-primary) {
  color: var(--ms-cyan-text, #007ea8);
  font-weight: 600;
  text-decoration: none;
}

.oe_website_login_container.ms-auth .btn-link:hover,
.oe_website_login_container.ms-auth a.btn-link:hover,
.oe_website_login_container.ms-auth a:not(.btn-primary):hover {
  color: var(--ms-cyan-deep, #00a8d6);
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.oe_website_login_container.ms-auth .o_show_password {
  border-color: var(--ms-line-strong, #d5dee5);
  background: #fff;
  border-top-right-radius: 12px;
  border-bottom-right-radius: 12px;
}

.oe_website_login_container.ms-auth .alert {
  border-radius: 12px;
  font-size: 0.9rem;
}

.oe_website_login_container.ms-auth .oe_login_buttons {
  gap: 0.35rem;
}

@media (max-width: 980px) {
  .ms-auth-stage__inner {
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    gap: 1.35rem;
  }

  .ms-auth-stage__copy {
    max-width: 40rem;
  }

  .ms-auth-stage__lead {
    max-width: none;
  }

  .oe_website_login_container.ms-auth {
    width: min(100%, 28rem);
    margin: 0;
  }
}

@media (max-width: 640px) {
  .ms-auth-stage {
    padding-bottom: 2rem;
  }

  .ms-auth-stage__title {
    font-size: clamp(1.7rem, 8vw, 2.15rem);
  }

  .oe_website_login_container.ms-auth {
    width: 100%;
    padding: 1.4rem 1.15rem 1.25rem;
    border-radius: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .oe_website_login_container.ms-auth .form-control,
  .oe_website_login_container.ms-auth .btn-primary {
    transition: none;
  }

  .oe_website_login_container.ms-auth .btn-primary:active {
    transform: none;
  }
}

/* ----- Error / search ----- */

.ms-sys {
  padding: clamp(3rem, 8vh, 5.5rem) 0 clamp(4rem, 10vh, 6.5rem);
}

.ms-sys__inner {
  max-width: 40rem;
}

.ms-sys__kicker {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ms-cyan-text, #007ea8);
}

.ms-sys__title {
  margin: 0 0 0.75rem;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1.15;
  color: var(--ms-ink, #0b1f26);
}

.ms-sys__title--search {
  font-size: clamp(1.45rem, 2.6vw, 1.9rem);
  margin-top: 1.25rem;
}

.ms-sys__lead {
  margin: 0 0 1.5rem;
  color: var(--ms-muted, #5b6b76);
  font-size: 1.05rem;
  line-height: 1.65;
}

.ms-sys__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.ms-sys--search .o_searchbar_form,
.ms-sys--search form.o_searchbar_form {
  max-width: 36rem;
}

.ms-sys--search .form-control {
  min-height: 2.75rem;
  border-radius: 10px;
}

.ms-sys--search .o_search_result_item {
  border: 1px solid var(--ms-line, #e6ecf0);
  border-radius: 12px;
  margin-bottom: 0.65rem;
  background: #fff;
}
