/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/react/controllers/interface_components/components_styles/_login.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************/
.login-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 2rem;
  background-color: #f8f9fa;
}

.login-form {
  display: flex;
  flex-direction: column;
  align-content: center;
  gap: 32px;
  background: white;
  padding: 3rem 2.5rem;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  width: 100%;
  max-width: 400px;
  text-align: center;
}

.login-logo {
  width: 200px;
  margin: auto;
}

.login-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: #1f2937;
}

.login-form-group {
  margin-bottom: 1.5rem;
  text-align: left;
}

.login-form-group label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: #374151;
  margin-bottom: 0.5rem;
}

.input-icon {
  position: relative;
  width: 100%;
}
.input-icon input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 1rem;
  transition: border-color 0.2s ease;
  background-color: white;
}
.input-icon input:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}
.input-icon input::placeholder {
  color: #9ca3af;
}
.input-icon .floating-label {
  position: absolute;
  left: 1rem;
  top: 0.75rem;
  color: #9ca3af;
  font-size: 1rem;
  pointer-events: none;
  transition: all 0.2s ease;
  background-color: white;
  padding: 0 0.25rem;
}
.input-icon .floating-label.active {
  top: -0.5rem;
  left: 0.75rem;
  font-size: 0.75rem;
  color: #3b82f6;
}

.password-input-container {
  position: relative;
}
.password-input-container .password-toggle {
  position: absolute;
  right: 1rem;
  top: 3.5rem;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: #9ca3af;
  cursor: pointer;
  padding: 0;
}
.password-input-container .password-toggle:hover {
  color: #6b7280;
}

.login-options {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 1.5rem 0;
  font-size: 0.875rem;
}

.remember-me {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.remember-me input[type=checkbox] {
  width: 1rem;
  height: 1rem;
  accent-color: #3b82f6;
}
.remember-me label {
  color: #374151;
  cursor: pointer;
  margin: 0;
}

.forgot-password {
  color: #3b82f6;
  text-decoration: none;
}
.forgot-password:hover {
  text-decoration: underline;
}

.login-button {
  width: 100%;
  background-color: #374151;
  color: white;
  border: none;
  padding: 0.875rem 1rem;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.login-button:hover {
  background-color: #1f2937;
}
.login-button:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(55, 65, 81, 0.1);
}

.login-error {
  background-color: #fef2f2;
  border: 1px solid #fecaca;
  color: #dc2626;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  margin-bottom: 1.5rem;
  font-size: 0.875rem;
}

.login-links {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e5e7eb;
}
.login-links p {
  margin: 0.5rem 0;
}
.login-links p a {
  color: #3b82f6;
  text-decoration: none;
  font-size: 0.875rem;
}
.login-links p a:hover {
  text-decoration: underline;
}

@media (max-width: 480px) {
  .login-container {
    padding: 1rem;
  }
  .login-form {
    padding: 2rem 1.5rem;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY3NzIiwibWFwcGluZ3MiOiI7OztBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDRjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7QUFDSjs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtBQUNGOztBQUVBO0VBQ0U7RUFDQTtBQUNGOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNGOztBQUVBO0VBQ0U7RUFDQTtBQUNGO0FBQ0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKO0FBQ0k7RUFDRTtFQUNBO0VBQ0E7QUFDTjtBQUVJO0VBQ0U7QUFBTjtBQUlFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBRko7QUFJSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FBRk47O0FBT0E7RUFDRTtBQUpGO0FBTUU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFKSjtBQU1JO0VBQ0U7QUFKTjs7QUFTQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFORjs7QUFTQTtFQUNFO0VBQ0E7RUFDQTtBQU5GO0FBUUU7RUFDRTtFQUNBO0VBQ0E7QUFOSjtBQVNFO0VBQ0U7RUFDQTtFQUNBO0FBUEo7O0FBV0E7RUFDRTtFQUNBO0FBUkY7QUFVRTtFQUNFO0FBUko7O0FBWUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRGO0FBV0U7RUFDRTtBQVRKO0FBWUU7RUFDRTtFQUNBO0FBVko7O0FBY0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVhGOztBQWNBO0VBQ0U7RUFDQTtFQUNBO0FBWEY7QUFhRTtFQUNFO0FBWEo7QUFhSTtFQUNFO0VBQ0E7RUFDQTtBQVhOO0FBYU07RUFDRTtBQVhSOztBQWtCQTtFQUNFO0lBQ0U7RUFmRjtFQWtCQTtJQUNFO0VBaEJGO0FBQ0YsQyIsInNvdXJjZXMiOlsid2VicGFjazovL3dlc2hhcmU3Ly4vYXNzZXRzL3JlYWN0L2NvbnRyb2xsZXJzL2ludGVyZmFjZV9jb21wb25lbnRzL2NvbXBvbmVudHNfc3R5bGVzL19sb2dpbi5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi5sb2dpbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG59XG5cbi5sb2dpbi1mb3JtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMzJweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAzcmVtIDIuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubG9naW4tbG9nbyB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIG1hcmdpbjogYXV0bztcbn1cblxuLmxvZ2luLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjMWYyOTM3O1xufVxuXG4ubG9naW4tZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmxvZ2luLWZvcm0tZ3JvdXAgbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICMzNzQxNTE7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmlucHV0LWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBcbiAgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkNWRiO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBcbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItY29sb3I6ICMzYjgyZjY7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSk7XG4gICAgfVxuICAgIFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAjOWNhM2FmO1xuICAgIH1cbiAgfVxuICBcbiAgLmZsb2F0aW5nLWxhYmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMXJlbTtcbiAgICB0b3A6IDAuNzVyZW07XG4gICAgY29sb3I6ICM5Y2EzYWY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogMCAwLjI1cmVtO1xuICAgIFxuICAgICYuYWN0aXZlIHtcbiAgICAgIHRvcDogLTAuNXJlbTtcbiAgICAgIGxlZnQ6IDAuNzVyZW07XG4gICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICBjb2xvcjogIzNiODJmNjtcbiAgICB9XG4gIH1cbn1cblxuLnBhc3N3b3JkLWlucHV0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgXG4gIC5wYXNzd29yZC10b2dnbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMXJlbTtcbiAgICB0b3A6IDMuNXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICM5Y2EzYWY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogIzZiNzI4MDtcbiAgICB9XG4gIH1cbn1cblxuLmxvZ2luLW9wdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMS41cmVtIDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5yZW1lbWJlci1tZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBcbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgYWNjZW50LWNvbG9yOiAjM2I4MmY2O1xuICB9XG4gIFxuICBsYWJlbCB7XG4gICAgY29sb3I6ICMzNzQxNTE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uZm9yZ290LXBhc3N3b3JkIHtcbiAgY29sb3I6ICMzYjgyZjY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG5cbi5sb2dpbi1idXR0b24ge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDE1MTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuODc1cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuICBcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFmMjkzNztcbiAgfVxuICBcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSg1NSwgNjUsIDgxLCAwLjEpO1xuICB9XG59XG5cbi5sb2dpbi1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWYyZjI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZWNhY2E7XG4gIGNvbG9yOiAjZGMyNjI2O1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuXG4ubG9naW4tbGlua3Mge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTdlYjtcbiAgXG4gIHAge1xuICAgIG1hcmdpbjogMC41cmVtIDA7XG4gICAgXG4gICAgYSB7XG4gICAgICBjb2xvcjogIzNiODJmNjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBcbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gUmVzcG9uc2l2ZSBkZXNpZ25cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAubG9naW4tY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIFxuICAubG9naW4tZm9ybSB7XG4gICAgcGFkZGluZzogMnJlbSAxLjVyZW07XG4gIH1cbn0iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/