@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800;900&display=swap');

/* =========================================
   AXVIA — ACCOUNT ACTIVATION
   PREMIUM COBALT THEME
========================================= */

:root {
  --bg: #eff3f9;
  --surface: #ffffff;
  --surface-soft: #eaf1ff;
  --surface-hover: #f0f5ff;
  --surface-subtle: #f7faff;
  --surface-tint: #f5f8ff;
  --surface-raised: #f8fbff;
  --surface-inactive: #e9edf4;
  --surface-preview: #e1e8f2;
  --surface-preview-soft: #edf2fa;
  --surface-overlay: rgba(255, 255, 255, 0.98);

  --primary: #2454e6;
  --primary-hover: #1641c7;
  --primary-soft: #e7eeff;
  --primary-border: #bfcefa;

  --blue: #1683f7;
  --blue-soft: #e5f2ff;

  --brand-gradient: linear-gradient(135deg, var(--blue), var(--primary));

  --primary-glow-light: rgba(36, 84, 230, 0.07);
  --primary-glow-soft: rgba(36, 84, 230, 0.13);
  --primary-glow-medium: rgba(36, 84, 230, 0.21);
  --primary-glow-strong: rgba(36, 84, 230, 0.30);

  --text: #131c2e;
  --text-soft: #53627a;
  --text-muted: #7c8ba1;
  --text-placeholder: #91a0b5;
  --text-inverse: #ffffff;
  --text-disabled: #75839a;

  --border: #dce4f0;
  --border-strong: #c8d4e4;
  --border-hover: #acbdd5;
  --border-hover-soft: #c2d2e8;
  --border-accent: #bfcefa;
  --border-focus: var(--primary);

  --success: #16845a;
  --success-soft: #e1f7ed;
  --success-strong: #087a4c;

  --warning: #a66b0a;
  --warning-soft: #fff3d8;
  --warning-light: #fffaed;
  --warning-light-alt: #fff3da;
  --warning-icon-bg: #ffeab5;
  --warning-border: #eacb89;
  --warning-dot: #d58a13;
  --warning-icon: #956008;
  --warning-text: #674408;
  --warning-text-soft: #896a30;

  --warning-gradient: linear-gradient(
    135deg,
    var(--warning-light),
    var(--warning-light-alt)
  );

  --danger: #d93649;
  --danger-soft: #ffe9ed;
  --danger-light: #fff4f6;
  --danger-border: #edbec7;
  --danger-border-hover: #e7a9b5;

  --lead-new: #3468e9;
  --lead-contacted: #8055d9;
  --lead-booked: #0287c9;
  --lead-won: #14965c;
  --lead-lost: #d93649;

  --overlay-light: rgba(56, 88, 145, 0.045);
  --overlay-muted: rgba(56, 88, 145, 0.11);
  --overlay-hover: rgba(36, 84, 230, 0.055);
  --overlay-dark: rgba(10, 23, 48, 0.56);

  --preview-overlay: linear-gradient(
    to top,
    rgba(12, 25, 48, 0.84),
    rgba(12, 25, 48, 0)
  );

  --shadow-sm: 0 2px 8px rgba(24, 45, 82, 0.055);
  --shadow-md: 0 8px 30px rgba(24, 45, 82, 0.10);
  --shadow-primary: 0 8px 24px rgba(36, 84, 230, 0.24);
  --shadow-primary-hover: 0 10px 26px rgba(36, 84, 230, 0.32);
  --shadow-card-hover: 0 8px 20px rgba(24, 45, 82, 0.09);
  --shadow-preview: 0 10px 28px rgba(24, 45, 82, 0.11);
  --shadow-preview-hover: 0 16px 34px rgba(24, 45, 82, 0.15);
  --shadow-sidebar: 12px 0 45px rgba(24, 45, 82, 0.17);
  --shadow-focus: 0 0 0 3px var(--primary-glow-soft);

  --radius-sm: 9px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-pill: 999px;

  --sidebar-width: 255px;

  --blue-glow-soft: rgba(22, 131, 247, 0.14);
  --border-icon-hover: #afc0d8;
  --border-input-hover: #aebfd7;
  --card-hover-shadow-color: rgba(24, 45, 82, 0.09);
  --danger-glow-light: rgba(217, 54, 73, 0.20);

  --indigo-gradient-end: rgba(36, 84, 230, 0.72);
  --indigo-shadow-soft: rgba(36, 84, 230, 0.22);
  --lead-booked-soft: #e6ecff;

  --neutral-shadow-faint: rgba(24, 45, 82, 0.06);
  --neutral-shadow-sidebar: rgba(24, 45, 82, 0.17);

  --preview-overlay-clear: rgba(12, 25, 48, 0);
  --preview-overlay-solid: rgba(12, 25, 48, 0.84);
  --preview-shadow-color: rgba(24, 45, 82, 0.11);
  --preview-shadow-hover-color: rgba(24, 45, 82, 0.15);

  --primary-glow-08: rgba(36, 84, 230, 0.08);
  --primary-glow-09: rgba(36, 84, 230, 0.09);
  --primary-glow-12: rgba(36, 84, 230, 0.12);
  --primary-glow-nav: rgba(36, 84, 230, 0.23);
  --primary-glow-shadow: rgba(36, 84, 230, 0.25);

  --scroll-thumb: #becbe0;
  --scroll-thumb-hover: #95a9c5;

  --status-building-bg: #fff0ce;
  --status-building-text: #a36a08;
  --status-inactive-dot: #8997ab;

  --surface-highlight: #f3f7ff;
  --surface-neutral-hover: #edf3fc;

  --tab-shadow-color: rgba(24, 45, 82, 0.12);
  --toggle-off: #c9d4e5;
  --toggle-shadow-color: rgba(24, 45, 82, 0.22);
}


/* =========================================
   RESET
========================================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
}

html {
  min-height: 100%;
}

body {
  min-height: 100vh;
  min-height: 100dvh;

  position: relative;
  isolation: isolate;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 40px 20px;

  font-family: "DM Sans", sans-serif;
  color: var(--text);
  -webkit-font-smoothing: antialiased;

  background:
    linear-gradient(
      145deg,
      #f1f5fb 0%,
      #e3ebf5 55%,
      #d5e0ee 100%
    );
}

a {
  color: var(--primary);
  text-decoration: none;
}

a:hover {
  color: var(--primary-hover);
}

a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 3px solid var(--primary-glow-medium);
  outline-offset: 3px;
}


/* =========================================
   SCULPTED CONTRAST BACKGROUND
========================================= */

body::before {
  content: "";
  position: fixed;

  top: -45%;
  left: 12%;

  width: 64%;
  height: 190%;

  z-index: -1;
  pointer-events: none;

  transform: rotate(27deg);

  border-radius: 32% 8% 25% 5%;

  background: linear-gradient(
    100deg,
    #c4d0df 0%,
    #e0e8f3 5%,
    #ffffff 16%,
    #f9fbff 42%,
    #e8f0fa 75%,
    #bac9dc 100%
  );

  border-left: 2px solid #b4c4d7;

  box-shadow:
    -22px 0 38px -12px rgba(34, 58, 94, 0.28),
    24px 0 35px -15px rgba(34, 58, 94, 0.22);
}

body::after {
  content: "";
  position: fixed;

  top: -35%;
  right: -35%;

  width: 65%;
  height: 180%;

  z-index: -1;
  pointer-events: none;

  transform: rotate(-24deg);

  border-radius: 42% 12% 35% 8%;

  background: linear-gradient(
    105deg,
    #c1d0e3 0%,
    #e5edf7 9%,
    #ffffff 23%,
    #f3f7fd 60%,
    #cedbed 100%
  );

  border-left: 2px solid #adbed4;

  box-shadow:
    -25px 0 42px -12px rgba(28, 53, 91, 0.30),
    18px 0 32px -16px rgba(28, 53, 91, 0.22);
}


/* =========================================
   ACTIVATION CARD
========================================= */

main {
  position: relative;
  z-index: 1;

  width: 100%;
  max-width: 480px;

  padding: 44px 42px 36px;

  background: rgba(255, 255, 255, 0.97);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);

  box-shadow:
    0 18px 60px rgba(24, 45, 82, 0.15),
    0 3px 10px rgba(24, 45, 82, 0.04);

  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}


/* =========================================
   TITLE / DESCRIPTION
========================================= */

main h1 {
  margin-bottom: 13px;

  color: var(--text);
  font-size: 28px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -1px;
  text-align: center;
}

main > p:first-of-type {
  max-width: 360px;
  margin: 0 auto 32px;

  color: var(--text-soft);
  font-size: 14px;
  line-height: 1.7;
  text-align: center;
}


/* =========================================
   FORM
========================================= */

#activation-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

#activation-form > div {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#activation-form label {
  color: var(--text);
  font-size: 13px;
  font-weight: 700;
}

#activation-form input {
  width: 100%;
  height: 49px;

  padding: 0 15px;

  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);

  color: var(--text);
  font-family: inherit;
  font-size: 14px;

  outline: none;

  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

#activation-form input::placeholder {
  color: var(--text-placeholder);
}

#activation-form input:hover {
  border-color: var(--border-input-hover);
}

#activation-form input:focus {
  background: #ffffff;
  border-color: var(--primary);
  box-shadow: var(--shadow-focus);
}

#activation-form input:disabled {
  background: var(--surface-inactive);
  color: var(--text-disabled);
  cursor: not-allowed;
}


/* =========================================
   ACTIVATE BUTTON
========================================= */

#activate-button {
  width: 100%;
  min-height: 51px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  margin-top: 6px;
  padding: 0 20px;

  background: var(--brand-gradient);
  border: 1px solid var(--primary);
  border-radius: var(--radius-sm);

  color: #ffffff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;

  cursor: pointer;

  box-shadow: var(--shadow-primary);

  transition:
    background 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

#activate-button:hover:not(:disabled) {
  background: var(--primary-hover);
  box-shadow: var(--shadow-primary-hover);
  transform: translateY(-2px);
}

#activate-button:active:not(:disabled) {
  transform: translateY(0);
}

#activate-button:disabled {
  opacity: 0.65;
  cursor: not-allowed;
  box-shadow: none;
}


/* =========================================
   STATUS / ERROR MESSAGE
========================================= */

#activation-message {
  margin-top: 19px;

  color: var(--danger);
  font-size: 13px;
  line-height: 1.6;
  text-align: center;
  overflow-wrap: anywhere;
}

#activation-message:empty {
  display: none;
}

#activation-message.success,
#activation-message[data-status="success"] {
  color: var(--success);
}


/* =========================================
   LOGIN LINK
========================================= */

main > p:last-of-type {
  margin-top: 25px;
  padding-top: 23px;

  border-top: 1px solid var(--border);

  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.6;
  text-align: center;
}

main > p:last-of-type a {
  margin-left: 3px;
  color: var(--primary);
  font-weight: 700;
}

main > p:last-of-type a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 720px) {
  body::before {
    left: -12%;
    width: 95%;
    transform: rotate(24deg);
  }

  body::after {
    right: -70%;
    width: 100%;
  }
}

@media (max-width: 600px) {
  body {
    padding: 24px 16px;
  }

  main {
    max-width: 440px;
    padding: 35px 25px 30px;
    border-radius: 17px;
  }

  main h1 {
    font-size: 25px;
    letter-spacing: -0.7px;
  }

  main > p:first-of-type {
    margin-bottom: 28px;
    font-size: 13px;
  }

  #activation-form {
    gap: 18px;
  }

  #activation-form input {
    height: 48px;
    font-size: 16px;
  }

  #activate-button {
    min-height: 50px;
  }
}

@media (max-width: 380px) {
  main {
    padding: 30px 20px 26px;
  }

  main h1 {
    font-size: 23px;
  }
}


/* =========================================
   REDUCED MOTION
========================================= */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
