  /* ***********************************************************************
      Filename: my_account.css
      Description: CSS file for the Register Account page of SACFinance
      Last worked on by: Sarina Lalria

      Related Files: 
          - my_account.cfm
          - Widgets/sign-up.cfm
          - Widgets/login.cfm
          - JS/my_account_scripts.js
          - JS/login_scripts.js
          - JS/sign_up_scripts.js
          
  ************************************************************************ */



  /* Wrapper for entire account section */
  .account-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: 'Calibri', sans-serif;
    padding: 20px;
  }

  .account-header {
    background-color: #032d52;
    width: 100%;
    max-width: 1125px;
    border-radius: 8px;
    padding: 0;

  }
  /* Header */
  .account-header h1 {
    text-align: center;
    font-size: 35px;
    color: #FFFFFF;
  }

  /* Container for login & signup sections */
  .account-container {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 40px; /* spacing between sections */
    width: 100%;
    max-width: 1100px;
  }

  /* Individual sections */
  .account-section {
    flex: 1;
    padding: 30px;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 600px;
  }



  /* Separator in the middle */
  .separator {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    width: 40px;
    margin-top: 20px;
  }

  /* Vertical line */
  .separator::before {
    content: '';
    position: absolute;
    height: 100%;
    width: 2px;
    background: #ccc;
    left: 50%;
    transform: translateX(-50%);
  }

  /* OR text */
  .separator span {
    background: #fff;
    padding: 5px 10px;
    z-index: 1;
    position: relative;
    font-weight: bold;
    color: #555;
  }

  /* ----------------------------
    Tablet View (768px–1024px)
  -----------------------------*/
  @media (min-width: 768px) and (max-width: 1024px) {
    .account-container {
      flex-direction: column; /* Stack vertically */
      align-items: center;
      gap: 30px;
      max-width: 1000px;

    }

    .account-section {
      width: 90%; /* Make sections wider on tablets */
      max-width: 700px;
    }

    

    /* Horizontal OR separator */
    .separator {
      flex-direction: row;
      width: 100%;
      height: auto;
      margin: 10px 0;
      position: relative;
    }

    .separator::before {
      content: '';
      position: absolute;
      width: 80%; /* shorter line for better balance */
      height: 2px;
      background: #ccc;
      top: 50%;
      left: 10%;
      transform: translateY(-50%);
    }

    .separator span {
      position: relative;
      z-index: 1;
      background: #fff;
      padding: 0 10px;
      font-weight: bold;
      color: #555;
    }

  }

  /* ----------------------------
    Mobile View (below 768px)
  -----------------------------*/
  @media (max-width: 767px) {
    .account-container {
      flex-direction: column;
      align-items: center;
      gap: 20px;
      width: 100%;
      padding: 0 15px; /* prevents content from touching screen edges */
      box-sizing: border-box;
    }

    .account-section {
      width: 100%;
      max-width: 300px;
    }

    .account-header {
      background-color: #032d52;
      width: 100%;
      min-width: 400px;
      border-radius: 8px;
      padding: 0;

    }

    .separator {
      display: flex !important;
      flex-direction: row !important;
      align-items: center !important;
      justify-content: center !important;
      width: 100% !important;     /* overrides base width: 40px */
      margin: 12px 0 !important;
      gap: 12px !important;
      position: relative !important; /* ok, but not required */
    }

    .separator::before,
    .separator::after {
      content: "" !important;
      display: block !important;

      /* kill the desktop absolute positioning */
      position: relative !important;
      left: auto !important;
      top: auto !important;
      transform: none !important;

      flex: 1 1 auto !important;
      height: 2px !important;
      background: #777 !important;
      width: auto !important;
    }

    .separator span {
      background: #fff !important;
      padding: 0 10px !important;
      font-weight: bold !important;
      color: #555 !important;
      z-index: 1 !important;
    }
  }




  /* ----------------------------
    Login Card
  -----------------------------*/

  .login-page  {
    font-family: 'Calibri', sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    max-width: 550px;
    min-width: 450px;
  }

  /* ----------------------------
    Registration Card
  -----------------------------*/
  .login-page .card {
    background: #fff;
    border: 2px solid #043e6c;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    padding: 1.5rem 2rem;
    max-width: 500px;
    width: 100%;
  }

  .login-page .card-title {
    text-align: center;
    font-size: 30px;
    font-weight: bold;
    color: #043e6c;
    margin-bottom: 1.8rem;
  }

  .login-page .form-control {
    width: 100%;
    padding: 10px;
    border: 1.5px solid #ccc;
    border-radius: 5px;
    margin-top: 0.3rem;
    font-size: 13px;
    margin-bottom: 15px;
  }


  /* ----------------------------
    Forgot Password Link
  -----------------------------*/
  .login-page .forgot-password {
    display: block;
    text-align: right;
    font-size: 0.9rem;
    margin-top: 0.5rem;
    color: #2A95D1;
    text-decoration: none;
    margin-bottom: 2rem;
  }

  .login-page .forgot-password:hover {
    text-decoration: underline;
  }


  .login-page button.btn {
    background-color: #2A95D1;
    color: white;
    border: none;
    padding: 12px;
    width: 100%;
    border-radius: 5px;
    font-size: 1rem;
    font-weight: bold;
    cursor: pointer;
    margin-top: 1.5rem;
    transition: background-color 0.2s ease;
    margin: 0 auto;
    display: block;
    margin-top: 50px;
  }

  /* ----------------------------
    Page Wrapper
  -----------------------------*/
  .signup-page {
    font-family: 'Calibri', sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    max-width: 550px;
  }

  /* ----------------------------
    Registration Card
  -----------------------------*/
  .signup-page .card {
    background: #fff;
    border: 2px solid #043e6c;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    padding: 1.5rem 2rem;
    max-width: 550px;
    width: 100%;
    min-width: 450px;
  }

  .signup-page .card-title {
    text-align: center;
    font-size: 30px;
    font-weight: bold;
    color: #043e6c;
    margin-bottom: 1.8rem;
  }

  /* ----------------------------
    Form Fields
  -----------------------------*/
  .signup-page .form-signin label, .login-page .form-signin label {
    font-weight: bold;
    color: #000;
    font-size: 16px;
  }

  .signup-page .form-control, .login-page .form-control {
    width: 100%;
    padding: 10px;
    border: 1.5px solid #ccc;
    border-radius: 5px;
    margin-top: 0.3rem;
    font-size: 12px;
  }

  .signup-page .form-control:focus, .login-page .form-control:focus {
    outline: none;
    border-color: #6a1b9a;
    box-shadow: 0 0 4px #6a1b9a;
  }

  /* ----------------------------
    Button Styling
  -----------------------------*/
  .signup-page button.btn  {
    background-color: #2A95D1;
    color: white;
    border: none;
    padding: 12px;
    width: 100%;
    border-radius: 5px;
    font-size: 1rem;
    font-weight: bold;
    cursor: pointer;
    margin-top: 12px;
    transition: background-color 0.2s ease;
    margin: 0 auto;
    display: block;
  }

  .signup-page button.btn:hover, .login-page button.btn:hover {
    background-color: #032d52;
  }

  /* ----------------------------
    Password Requirement Message
  -----------------------------*/
  .signup-page #message {
    background: #f1f1f1;
    color: #000;
    border-radius: 5px;
    padding: 10px;
    margin-top: 0.5rem;
    font-size: 0.9rem;
    display: none;
    margin-bottom: 15px;
  }

  /* Show check or cross before text */
  #message p {
    display: flex;
    align-items: center;
    gap: 6px; /* spacing between icon and text */
    font-size: 0.9rem;
  }

  #message .valid::before {
    content: "✔"; /* check mark */
    color: green;
    font-weight: bold;
  }

  #message .invalid::before {
    content: "✖"; /* cross mark */
  }

  .signup-page .valid, .login-page .valid {
    color: green;
  }

  .signup-page .invalid, .login-page .invalid {
    color: red;
  }

  .inline-confirmation {
      position: relative;
      display: flex;
      align-items: center;
      width: 100%;
  }

  #confirm-icon, #pass-icon {
      position: absolute;
      right: 10px; /* space from right edge of input */
      color: green;
      font-weight: bold;
      font-size: 1rem;
      pointer-events: none; /* allows clicking input without blocking */
  }

  #confirmation {
      margin-top: 5px;
      font-size: 0.9rem;
      margin-bottom: 10px;
  }




  /* ----------------------------
    Desktop & Tablet Layout
  -----------------------------*/
  @media (min-width: 768px) {
    .signup-page .form-signin .input-group {
      margin-bottom: 1.2rem;
    }

    /* Email + Account row */
    .signup-page .email-account-row {
      display: flex;
      gap: 1.2rem;
    }

    .signup-page .email-account-row .col-12 {
      flex: 1;
    }

    /* Password + Confirm Password row */
    .signup-page .password-row {
      display: flex;
      gap: 1.2rem;
      flex-wrap: wrap;
    }

    .signup-page .password-row .col-12 {
      flex: 1;
    }



    .login-page .form-signin .input-group {
      margin-bottom: 1.2rem;
    }


  }
  /* ----------------------------
    Mobile Layout
  -----------------------------*/
  @media (max-width: 767px) {
    .login-page .card{
      max-width: 350px;
    }

    .signup-page .card {
      min-width: 350px;
      max-width: 350px;
    }

  .signup-page .form-control {
      margin-bottom: 20px;
    }
    
    .signup-page .password-row, .signup-page .email-account-row {
      display: block;
    }

    .login-page .form-control {
      margin-bottom: 20px;
    }

    #confirm-icon, #pass-icon {
      right: 15px; /* adjust for smaller input width on mobile */
      margin: 0 5px;
    }

  }

  /* give MFA the same “base” styling as login */
  #mfa_screen {
    font-family: 'Calibri', sans-serif;
  }

  /* make the card styling apply to MFA cards too */
  .login-page .card,
    #mfa_screen .card {
      background: #fff;
      border: 2px solid #043e6c;
      border-radius: 10px;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
      padding: 1.5rem 2rem;
      width: 100%;
  }

  /* inputs */
  .login-page .form-control,
  #mfa_screen .form-control {
    width: 100%;
      padding: 10px;
      border: 1.5px solid #ccc;
      border-radius: 5px;
      margin-top: 0.3rem;
      font-size: 12px;
  }

  /* buttons */
  .login-page button.btn,
  #mfa_screen button.btn {
    background-color: #2A95D1;
    color: white;
    border: none;
    padding: 12px;
    width: 100%;
    border-radius: 5px;
    font-size: 1rem;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.2s ease;
    display: block;
    margin: 12px auto 0;
  }
