:root {
  --text: #444444;
  --input-text: #333333;
  --bg: #ffffff;
  --line: #eaeaea;
  --shadow: rgb(234, 234, 234) 0px 0px 10px 0px;
  --blue: #d81b6a;
  --blue-border: #b0125a;
  --radius-input: 4px;
  --radius-button: 2px;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--bg); }
body {
  font-family: Arial, sans-serif;
  font-size: 14px;
  color: var(--text);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow-x: hidden;
}
.login-wrap { width: 600px; max-width: calc(100% - 20px); display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 20px 0; }
.login-page-content {
  width: 100%;
  min-height: 400px;
  padding-bottom: 28px;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  background: var(--bg);
}
.login-page-header {
  height: 95px;
  text-align: center;
}
.brand-image { display: inline-block; width: 370px; max-width: 100%; height: 95px; }
.login-page-divider { height: 3px; background: #b8e62e; }
.login-page-main {
  padding: 58px 25px 0;
  text-align: center;
}
.login-title { font-size: 16px; line-height: 18px; margin-bottom: 20px; }
@media (max-width: 560px) { .login-title { font-size: 14px; } }
.login-title strong { font-weight: 700; }
.login-email-input-row { line-height: 26px; white-space: nowrap; }
.login-email-input-row label { font-size: 14px; }
#focus {
  width: 310px;
  max-width: calc(100% - 50px);
  height: 26px;
  margin: 0;
  padding: 2px 4px;
  border: 1px solid #767676;
  border-radius: var(--radius-input);
  color: var(--input-text);
  font: 14px Arial, sans-serif;
  vertical-align: top;
}
#focus:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue); }
.login-error { color: #c5221f; font-size: 13px; min-height: 0; }
.login-error:not(:empty) { margin-top: 8px; }
.login-submit-button-row { margin-top: 20px; }
#login-button {
  width: 200px;
  height: 40px;
  margin: 0;
  border: 1px solid var(--blue-border);
  border-radius: var(--radius-button);
  background: var(--blue);
  color: #ffffff;
  font: 700 14px Arial, sans-serif;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
#login-button:hover { background: #b0125a; }
@media (max-width: 420px) {
  #focus { width: 220px; }
}

.login-about { max-width: 460px; margin: 30px auto 0; font-size: 13px; line-height: 1.6; color: #666666; }
.login-links { display: flex; gap: 10px; font-size: 13px; color: #888888; }
.login-links a { color: #555555; }
.login-links a:hover { color: var(--blue); }
