/* registro.html */
:root {
        --purple-500: #583be2;
        --blue-900: #202945;
        --border: #cdd2e3;
        --page-bg: #f3f4f8;
        --white: #ffffff;
      }

      * {
        box-sizing: border-box;
      }

      body {
        margin: 0;
        min-height: 100vh;
        font-family: "Instrument Sans", sans-serif;
        background: var(--page-bg);
        color: var(--blue-900);
      }

      .page {
        min-height: 100vh;
        display: grid;
        grid-template-columns: 1.05fr 0.95fr;
        background: var(--page-bg);
      }

      .hero {
        position: relative;
        display: grid;
        place-items: center;
        padding: 72px 64px;
        color: #fff3ed;
        background: radial-gradient(
            circle at 15% 85%,
            rgba(255, 164, 0, 0.25),
            rgba(88, 59, 226, 0.15) 50%,
            rgba(6, 7, 28, 0.7) 80%
          ),
          url("../assets/4873dd31541cc480504213ab771dbf9c0ecdad95.png") center/cover
            no-repeat;
      }

      .hero::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(
          155deg,
          rgba(5, 7, 28, 0.1) 0%,
          rgba(5, 7, 28, 0.75) 70%
        );
      }

      .hero-content {
        position: relative;
        z-index: 1;
        max-width: 440px;
        text-align: center;
      }

      .hero h1 {
        margin: 0 0 24px;
        font-size: 64px;
        font-weight: 400;
        line-height: 72px;
        color: #fff3ed;
      }

      .hero h1 span {
        color: #ffa400;
      }

      .hero p {
        margin: 0;
        font-size: 24px;
        font-weight: 400;
        line-height: 30px;
        color: #ffffff;
      }

      .panel {
        display: grid;
        place-items: center;
        background: #f7f7f9;
        padding: 64px 24px;
      }

      .card {
        width: min(520px, 92%);
        background: var(--white);
        padding: 36px 32px 32px;
        border-radius: 16px;
        box-shadow: 0 26px 60px rgba(16, 27, 68, 0.12);
        display: grid;
        gap: 18px;
        justify-items: center;
      }

      .logo {
        width: 170px;
        margin-bottom: 8px;
      }

      h1 {
        margin: 0 0 6px;
        font-size: 32px;
        font-weight: 400;
        line-height: 40px;
        color: var(--purple-500);
        align-self: start;
        width: 100%;
      }

      form {
        width: 100%;
        display: grid;
        gap: 12px;
      }

      .field-group {
        display: grid;
        gap: 12px;
      }

      .two-col {
        display: grid;
        gap: 16px;
        grid-template-columns: 1fr 1fr;
      }

      label {
        display: block;
        font-size: 16px;
        font-weight: 400;
        line-height: 24px;
        color: var(--blue-900);
        margin-bottom: 4px;
      }

      input {
        width: 100%;
        height: 44px;
        padding: 10px 12px;
        border-radius: 6px;
        border: 1px solid var(--border);
        font-family: inherit;
        font-size: 14px;
        background: #fbfbfd;
      }

      .checkboxes {
        display: grid;
        gap: 8px;
        margin-top: 4px;
      }

      .checkboxes label {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: 12px;
        line-height: 20px;
        color: #6f7797;
        margin: 0;
      }

      .checkboxes input {
        width: 16px;
        height: 16px;
        margin: 0;
      }

      .checkboxes a {
        color: var(--purple-500);
        text-decoration: none;
      }

      button {
        width: 100%;
        height: 56px;
        padding: 14px 0 18px;
        border: none;
        border-radius: 8px;
        background: var(--purple-500);
        color: #fff;
        font-size: 16px;
        cursor: pointer;
        margin-top: 4px;
      }

      .login {
        font-size: 12px;
        text-align: center;
        color: #6f7797;
      }

      .login a {
        color: var(--purple-500);
        text-decoration: none;
        font-weight: 500;
      }

      @media (max-width: 980px) {
        .page {
          grid-template-columns: 1fr;
        }

        .hero {
          display: none;
        }

        .card {
          border-radius: 0;
          box-shadow: none;
        }

        .two-col {
          grid-template-columns: 1fr;
        }
      }

      @media (max-width: 640px) {
        .card {
          border-radius: 12px;
          padding: 28px 22px;
        }

        .two-col {
          grid-template-columns: 1fr;
        }
      }

button:disabled {
        opacity: 0.6;
        cursor: not-allowed;
      }

      body.modal-open {
        overflow: hidden;
      }

      .terms-modal {
        position: fixed;
        inset: 0;
        background: rgba(6, 7, 28, 0.45);
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 24px;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.2s ease;
        z-index: 20;
      }

      .terms-modal.is-open {
        opacity: 1;
        pointer-events: auto;
      }

      .terms-card {
        width: min(420px, 90vw);
        background: #ede7fb;
        border-radius: 16px;
        padding: 28px 26px 24px;
        box-shadow: 0 24px 60px rgba(16, 27, 68, 0.2);
        display: grid;
        gap: 16px;
        justify-items: center;
        text-align: center;
      }

      .terms-card h2 {
        margin: 0;
        font-size: 16px;
        font-weight: 400;
        line-height: 24px;
        color: var(--purple-500);
        max-width: 293px;
      }

      .terms-body {
        font-size: 12px;
        line-height: 20px;
        color: var(--blue-900);
        max-width: 293px;
        text-align: center;
      }

      .terms-body p {
        margin: 0 0 8px;
      }

      .terms-body ol {
        margin: 0 0 10px;
        padding: 0;
        list-style-position: inside;
      }

      .terms-body li {
        margin-bottom: 6px;
      }

      .terms-actions {
        display: flex;
        gap: 16px;
        width: 100%;
        justify-content: center;
      }

      .terms-actions button {
        width: 170px;
        height: 56px;
        margin-top: 0;
        padding: 14px 0 18px;
        border-radius: 8px;
        font-size: 16px;
        cursor: pointer;
      }

      .terms-close {
        background: transparent;
        border: 1px solid var(--purple-500);
        color: var(--blue-900);
      }

      .terms-accept {
        border: none;
        background: var(--purple-500);
        color: #ffffff;
      }

      @media (max-width: 640px) {
        .terms-card {
          width: 100%;
          padding: 24px 20px;
        }

        .terms-actions {
          flex-direction: row;
          flex-wrap: wrap;
          gap: 12px;
        }

        .terms-actions button {
          width: calc(50% - 6px);
          font-size: 14px;
        }
      }

/* layout panel stretch */
@media (min-width: 1024px) {
  .layout .content {
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  .layout .panel {
    width: 100%;
    max-width: none;
    min-height: 0;
    height: 100%;
    flex: 1;
  }
}

