/* Login CSS with media queries */

/* Global Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Html tag */
html {
  font-family: Helvetica, Arial, sans-serif;
  font-size: 12px;
}

/* ============================================================= */
/* Global heading, list, line spacing and text styles */
/* ============================================================= */

/* Headings styles */
h1 {
  font-size: 2rem;
  color: #404040;
}

h2 {
  font-size: 1.5rem;
  color: #404040;
}

h3 {
  font-size: 1.25rem;
  color: #404040;
}

h4 {
  font-size: 1rem;
  color: #404040;
}

/* List and paragraph styles */
ul,
ol,
dl,
p {
  font-size: 1rem;
}

li,
p {
  line-height: 1.4;
}

/* Description list styles */
dd,
dt {
  line-height: 1.4;
}

dt {
  font-weight: bold;
}

/* page body */
body {
    color: #4f4f4f;
    background: rgb(44, 44, 44);
    min-height: 100vh;
}

/* main container */
.main-container {
    display: flex;
    flex-direction: column;
    justify-content: center; /* Centers horizontally */
    align-items: center; /* Centers vertically */
    min-height: 100vh;
    margin: 0;
}

/* content container */
.content-container {
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 20px 30px 20px;
    width: 500px;
    background-color: rgb(235, 235, 235);
    border: none;
    border-radius: 10px;
    box-shadow: 10px 10px 10px 5px rgba(91, 91, 91, 0.3);

}

/* Title for content */
.title {
    width: 100%;
    text-align: center;
    margin-bottom: 20px;
}

/* Form description paragraph */
.form-description {
    font-size: 1.2rem;
    width: 75%;
    margin: 5px auto;
    padding: 5px;
    text-align: center;
}

/* Password error message */
.error-message {
    width: 80%;
    margin: 10px auto;
    padding: 5px;
    background-color: #ffdddd;
    border: 1px solid #ff5c5c;
    border-radius: 7px;
    color: #a94442;
    text-align: center;
}

/* Password success message */
.success-message {
    width: 80%;
    margin: 10px auto;
    padding: 5px;
    background-color: #ddffdd;
    border: 1px solid #4ad84a;
    border-radius: 7px;
    color: #3c763d;
    text-align: center;
} 

/* Login form styles */
.login-form {
    width: 80%;
    margin: 10px auto;
}

/* Form group styles */
.form-group {
    margin-bottom: 15px;
    display: flex;
    flex-direction: column;
}

/* Form group labels */
.form-group label {
    margin-bottom: 2px;
    margin-left: 5px;
    font-weight: bold;
}

/* Form group inputs */
.form-group input {
    padding: 7px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 1rem;
    transition: border-color 0.3s ease;
}

/* form group input focus state */
.form-group input:focus {
    outline: none;
    border: 1px solid #65a1fa;
    box-shadow: 0 0 5px rgba(102, 126, 234, 0.3);
}

/* form group input invalid state */
.form-group input:invalid {
    border: 1px solid #e74c3c;
}

/* Disable browser's built-in password reveal button */
.form-group input[type="password"]::-ms-reveal,
.form-group input[type="password"]::-webkit-reveal {
    display: none;
}

/* Password field container with flexbox layout */
.password-container {
    position: relative;
    display: flex;
    align-items: center;
}

.password-container input {
    flex: 1;
    padding-right: 40px !important;
    margin: 0;
}

.password-toggle-btn {
    position: absolute;
    right: 10px;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 16px;
    z-index: 10;
    color: #007edfff;
    padding: 4px;
    border-radius: 3px;
    transition: color 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    top: 50%;
    transform: translateY(-50%);
}

.password-toggle-btn:hover {
    color: #00e5ff;
}

.password-toggle-btn:focus {
    outline-offset: 2px;

    /* Inactive styles */
    /* outline: 1px solid #667eea; */
}


/* Form button styles */
.button-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    margin-bottom: 10px;
    width: 100%;
}

/* Button base styles */
.btn {
    padding: 10px 15px;
    text-decoration: none;
    text-align: center;
    border-radius: 5px;
    font-size: 1rem;
    font-weight: bold;
    transition: all 0.3s ease;      /* Smooth transition for hover effects */
    cursor: pointer;
    border: none;
    flex: 1;                        /* Allow buttons to grow and fill available space */
    min-width: 0;                   /* Prevents flex items from overflowing */
    box-sizing: border-box;         /* Include padding and border in element's total width and height */
    height: 44px;                   /* Consistent height for all buttons */
    display: flex;                  /* Use flexbox for centering content */
    align-items: center;            /* Center content vertically */
    justify-content: center;        /* Center content horizontally */
}


/* Primary button style */
.btn-primary {
    background-color: #667eea;
    color: white;
}

/* Primary button hover effect */
.btn-primary:hover {
    background: #5a6fd8;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
}

/* Secondary button style */
.btn-secondary {
    background-color: #c000e6;
    color:white;
}

/* Secondary button hover effect */
.btn-secondary:hover {
    background: #a300b8;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(192, 0, 230, 0.4);
}

/* Other links container */
.other-links {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    margin-top: 30px;
    margin-bottom: 15px;
}

/* Individual link item styles */
.other-links .link-item {
    margin: 0px;
}

/* ============================================================= */
/* Responsive Media Queries */
/* ============================================================= */

/* ============================================================= */
/*   Device = Most of the Smartphones Mobiles (Portrait)
/*   Screen = below 480px
/* ============================================================= */
@media (max-width: 480px) {

  .content-container {
    padding: 5px;
    min-width: none;
    max-width: 100%;
    margin: 5px 5px;

    /* Testing breakpoints */
    /* background-color: violet; */
  }

  /* Force buttons to stack vertically and be full width */
  .button-row {
    flex-direction: column;
    gap: 8px;
  }

  .btn {
    width: 100% !important;
    margin: 0;
  }

}

/* ============================================================= */
/*   Device = Low Resolution Tablets, Mobiles (Landscape)
/*   Screen = 481px to 767px
/* ============================================================= */
@media (min-width: 481px) and (max-width: 767px) {

  .content-container {
    padding: 10px;
    min-width: none;
    max-width: 100%;
    margin: 5px 5px;

    /* Testing breakpoints */
    /* background-color: tomato; */
  }

}

/* ============================================================= */
/*   Device = Tablets, Ipads (portrait)
/*   Screen = 768px to 1024px
/* ============================================================= */
@media (min-width: 768px) and (max-width: 1024px) {

  .content-container {
    padding: 15px;
    max-width: 90%;

    /* Testing breakpoints */
    /* background-color: aqua; */
  }

}

/* ============================================================= */
/*   Device = Tablets, Ipads (landscape)
/*   Screen = 768px to 1024px
/* ============================================================= */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {

    .content-container {
    padding: 15px;
    max-width: 90%;

    /* Testing breakpoints */
    /* background-color: rgb(0, 255, 98); */
  }

}

/* ============================================================= */
/*   Device = Laptops, Desktops
/*   Screen = 1025px to 1280px
/* ============================================================= */
@media (min-width: 1025px) and (max-width: 1280px) {

  /* CSS */

}


/* ============================================================= */
/*   Device = Desktops
/*   Screen = 1281px to higher resolution desktops
/* ============================================================= */
@media (min-width: 1281px) {

  /* CSS */

}
