:root {
      --black: #202020;
      --white: #ffffff;
      --text: #111111;
      --muted: #666666;
      --border: #d8d8d8;
      --error: #ed4b4b;
      --disabled: #eeeeee;
      --disabled-text: #9b9b9b;
    }

    * {
      box-sizing: border-box;
    }

    html,
    body {
      margin: 0;
      width: 100%;
      min-height: 100%;
      font-family:var(--go-ui-font);
      color: var(--text);
      background: #111;
    }

    body {
      min-height: 100vh;
      overflow: hidden;
    }

    .login-page {
      width: 100%;
      min-height: 100vh;
      display: grid;
      grid-template-columns: 50% 50%;
      background: #111;
    }

    /* Painel esquerdo — mesma lógica visual do portal C6 Auto */
    .visual-panel {
      position: relative;
      min-height: 100vh;
      overflow: hidden;
      background: #202020;
    }

    .visual-panel::before {
      content: "";
      position: absolute;
      inset: 0;
      background-image: url("/assets/img/login-bg.a6cc859dcaa6.webp");
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      filter: none;
      transform: none;
    }

    .visual-panel::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(
        180deg,
        rgba(0, 0, 0, .14) 0%,
        rgba(0, 0, 0, .03) 35%,
        rgba(0, 0, 0, .10) 100%
      );
      pointer-events: none;
    }

    .visual-header {
      position: absolute;
      z-index: 2;
      top: 30px;
      left: 32px;
      color: #fff;
    }

    .visual-header .brand {
      margin: 0 0 18px;
      font-size: 31px;
      line-height: 1;
      font-weight: 700;
      letter-spacing: -1.2px;
    }

    .visual-header .portal-title {
      margin: 0;
      font-size: 32px;
      line-height: 1.1;
      font-weight: 700;
      letter-spacing: .2px;
      text-shadow: 0 1px 2px rgba(0,0,0,.16);
    }

    /* Painel direito */
    .form-panel {
      position: relative;
      min-height: 100vh;
      background: #fff;
      border-radius: 8px 0 0 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 3;
    }

    .form-content {
      width: min(420px, calc(100% - 64px));
      transform: translateY(-10px);
    }

    .form-heading {
      margin-bottom: 30px;
      text-align: center;
    }

    .form-heading h1 {
      margin: 0 0 20px;
      font-size: 28px;
      line-height: 1;
      font-weight: 700;
    }

    .form-heading p {
      margin: 0 auto;
      max-width: 390px;
      font-size: 14px;
      line-height: 1.55;
      color: #161616;
    }

    .login-form {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }

    .field {
      position: relative;
    }

    .field input {
      width: 100%;
      height: 54px;
      border: 1px solid var(--border);
      border-radius: 8px;
      outline: none;
      padding: 0 44px 0 14px;
      background: #fff;
      color: #161616;
      font-size: 16px;
      font-family: inherit;
      transition: border-color .15s ease, box-shadow .15s ease;
    }

    .field input::placeholder {
      color: #6e6e6e;
      opacity: 1;
    }

    .field input:focus {
      border-color: #111;
      box-shadow: none;
    }

    .field.is-invalid input {
      border-color: var(--error);
    }

    .field-error {
      display: none;
      margin: 6px 0 0 14px;
      color: var(--error);
      font-size: 12px;
      line-height: 1.3;
    }

    .field.is-invalid .field-error {
      display: block;
    }

    .password-toggle {
      position: absolute;
      top: 27px;
      right: 13px;
      transform: translateY(-50%);
      width: 28px;
      height: 28px;
      padding: 0;
      border: 0;
      background: transparent;
      color: #666;
      display: grid;
      place-items: center;
      cursor: pointer;
    }

    .password-toggle svg {
      width: 20px;
      height: 20px;
      display: block;
    }

    .continue-button {
      width: 100%;
      height: 38px;
      margin-top: 4px;
      border: 0;
      border-radius: 8px;
      background: #111;
      color: #fff;
      font-family: inherit;
      font-size: 14px;
      font-weight: 600;
      letter-spacing: .25px;
      cursor: pointer;
      transition: opacity .15s ease, background-color .15s ease;
    }

    .continue-button:disabled {
      background: var(--disabled);
      color: var(--disabled-text);
      cursor: default;
    }

    .continue-button:not(:disabled):hover {
      background: #2b2b2b;
    }

    .support-text {
      margin: 22px 0 0;
      text-align: center;
      color: #777;
      font-size: 12px;
      line-height: 1.45;
    }

    @media (max-width: 900px) {
      body {
        overflow: auto;
      }

      .login-page {
        min-height: 100vh;
        grid-template-columns: 1fr;
        grid-template-rows: 38vh auto;
      }

      .visual-panel {
        min-height: 38vh;
      }

      .visual-panel::before {
        background-size: cover;
      }

      .visual-header {
        top: 22px;
        left: 22px;
      }

      .visual-header .brand {
        font-size: 23px;
        margin-bottom: 10px;
      }

      .visual-header .portal-title {
        font-size: 26px;
      }

      .form-panel {
        min-height: 62vh;
        border-radius: 18px 18px 0 0;
        margin-top: -18px;
        padding: 54px 0;
      }

      .form-content {
        transform: none;
      }
    }

    @media (max-width: 520px) {
      .login-page {
        grid-template-rows: 31vh auto;
      }

      .visual-panel {
        min-height: 31vh;
      }

      .visual-header .portal-title {
        font-size: 23px;
      }

      .form-panel {
        min-height: 69vh;
      }

      .form-content {
        width: calc(100% - 40px);
      }

      .form-heading h1 {
        font-size: 25px;
      }

      .form-heading p {
        font-size: 13px;
      }
    }
  

    /* ==========================================================
       FEEDBACK VISUAL DO LOGIN
       ========================================================== */
    .login-alert {
      display: none;
      width: 100%;
      margin: -6px 0 20px;
      padding: 13px 15px;
      border: 1px solid #f0b8b8;
      border-radius: 8px;
      background: #fff5f5;
      color: #b42318;
      font-size: 13px;
      line-height: 1.45;
      text-align: left;
    }

    .login-alert.show {
      display: flex;
      align-items: flex-start;
      gap: 10px;
    }

    .login-alert-icon {
      width: 20px;
      height: 20px;
      min-width: 20px;
      margin-top: 1px;
      border-radius: 50%;
      background: #ed4b4b;
      color: #fff;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      font-weight: 700;
    }

    .login-alert-content { flex: 1; }

    .login-alert-title {
      display: block;
      margin-bottom: 2px;
      color: #9f1c13;
      font-weight: 700;
    }

    .login-alert-message {
      display: block;
      color: #b42318;
    }

    .continue-button.is-loading {
      opacity: .72;
      cursor: wait;
    }
