* {
  margin: 0;
  padding: 0;
  font-family: "Google Sans", "Roboto", arial, sans-serif;
  box-sizing: border-box;
}

html, body {
  height: 100%;
  background-color: #fff;
  color: #202124;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:root {
  --principal: #202124;
  --secondary: #5f6368;
  --blue: #1a73e8;
  --blue-hover: #1765cc;
  --blue-active: #1558b0;
  --border-card: #dadce0;
  --border-input: #9aa0a6;
  --error-red: #d93025;
  --bg-footer: #f8f9fa;
}

/* ========================= */
/* Container                 */
/* ========================= */
.container {
  width: 100%;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 24px;
}

/* ========================= */
/* Card                      */
/* ========================= */
.card {
  width: 450px;
  max-width: 100%;
  border-radius: 8px;
  border: 1px solid var(--border-card);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 48px 40px 36px;
  background: #fff;
}

.card h2 {
  padding-top: 16px;
  font-weight: 400;
  font-size: 24px;
  color: var(--principal);
  font-family: "Google Sans", "Roboto", arial, sans-serif;
}

.card h3 {
  padding: 8px 0 3px 0;
  font-weight: 400;
  font-size: 16px;
  color: var(--secondary);
  font-family: "Roboto", arial, sans-serif;
}

/* ========================= */
/* Input field               */
/* ========================= */
.input-contain {
  position: relative;
  width: 100%;
  margin-top: 24px;
}

.input-contain input,
.card input[type="text"] {
  padding: 13px 15px;
  width: 100%;
  height: 56px;
  border-radius: 4px;
  border: 1px solid var(--border-input);
  outline: none;
  font-size: 16px;
  font-family: "Roboto", arial, sans-serif;
  color: var(--principal);
  background: transparent;
  transition: border-color 0.2s;
  box-sizing: border-box;
}

.input-contain input:focus,
.card input[type="text"]:focus {
  border: 2px solid var(--blue);
  padding: 12px 14px;
}

/* Placeholder label */
.placeholder-text {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  border: 3px solid transparent;
  background-color: transparent;
  display: flex;
  align-items: center;
  pointer-events: none;
  padding: 0 12px;
}

.text {
  padding: 0 4px;
  background-color: transparent;
  color: var(--secondary);
  font-size: 16px;
  font-family: "Roboto", arial, sans-serif;
  transform: translate(0);
  transition: transform 0.15s ease-out, font-size 0.15s ease-out, background-color 0.1s ease-out, color 0.15s ease-out;
}

input:focus + .placeholder-text .text {
  background-color: white;
  color: var(--blue);
  font-size: 12px;
  transform: translate(0, -185%);
}

:not(input[value=""]) + .placeholder-text .text {
  background-color: white;
  color: var(--secondary);
  font-size: 12px;
  transform: translate(0, -185%);
}

input:focus + .placeholder-text .text {
  color: var(--blue);
}

/* Error state */
.input-contain input.input-error,
input.input-error {
  border: 2px solid var(--error-red) !important;
  padding: 12px 14px;
}

.input-contain input.input-error + .placeholder-text .text {
  color: var(--error-red);
}

/* ========================= */
/* Forgot Email link         */
/* ========================= */
.card .btn-email {
  padding-top: 9px;
  width: 100%;
  text-align: left;
}

.card .btn-email button {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
}

.card .btn-email button a,
.card .btn-email a {
  color: var(--blue);
  font-weight: 500;
  font-size: 14px;
  text-decoration: none;
  font-family: "Google Sans", "Roboto", arial, sans-serif;
}

.card .btn-email button a:hover {
  text-decoration: underline;
}

/* ========================= */
/* Error message             */
/* ========================= */
#error {
  display: block;
  min-height: 0;
  text-align: left;
  width: 100%;
}

#error .jibhHc {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
}

#error .jibhHc p {
  padding: 0 !important;
  margin: 0;
  font-size: 12px !important;
  color: var(--error-red);
  font-weight: 400 !important;
}

#error .jibhHc svg {
  flex-shrink: 0;
}

/* ========================= */
/* Guest mode text           */
/* ========================= */
.card p {
  padding-top: 32px;
  color: var(--secondary);
  font-size: 14px;
  line-height: 1.6;
  font-family: "Roboto", arial, sans-serif;
  text-align: left;
  width: 100%;
}

.card p a {
  color: var(--blue);
  font-weight: 500;
  text-decoration: none;
  font-family: "Google Sans", "Roboto", arial, sans-serif;
}

.card p a:hover {
  text-decoration: underline;
}

/* ========================= */
/* Card bottom buttons       */
/* ========================= */
.card .card-bottom {
  margin-top: auto;
  padding-top: 32px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.card .card-bottom a {
  border: none;
  cursor: pointer;
  color: var(--blue);
  font-weight: 500;
  text-decoration: none;
  font-size: 14px;
  font-family: "Google Sans", "Roboto", arial, sans-serif;
  padding: 8px 8px 8px 0;
}

.card .card-bottom a:hover {
  text-decoration: underline;
}

.card .card-bottom button {
  background: var(--blue);
  color: #fff;
  padding: 0 24px;
  height: 36px;
  font-size: 14px;
  font-weight: 500;
  font-family: "Google Sans", "Roboto", arial, sans-serif;
  outline: none;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s, box-shadow 0.2s;
  letter-spacing: 0.25px;
}

.card .card-bottom button:hover {
  background: var(--blue-hover);
  box-shadow: 0 1px 3px 1px rgba(26,115,232,0.25);
}

.card .card-bottom button:active {
  background: var(--blue-active);
}

/* ========================= */
/* Footer                    */
/* ========================= */
.footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 24px;
  font-size: 12px;
  width: 450px;
  max-width: 100%;
  color: var(--secondary);
}

.footer select {
  background: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  color: var(--secondary);
  font-size: 12px;
  font-family: "Roboto", arial, sans-serif;
  padding: 4px 0;
}

.footer .footer-span {
  display: flex;
  align-items: center;
}

.footer .footer-span span {
  margin-left: 24px;
}

.footer-span a {
  border-radius: 2px;
  color: #757575;
  display: inline-block;
  font-family: "Roboto", arial, sans-serif;
  font-size: 12px;
  transition: background 0.2s;
  text-decoration: none;
  padding: 4px 8px;
  border-radius: 4px;
}

.footer-span a:hover {
  background-color: #f1f3f4;
}

/* ========================= */
/* Password page: user pill  */
/* ========================= */
.aCayab {
  margin: 8px 0 0 0;
  padding: 0;
}

.YZrg6 {
  align-items: center;
  background: #fff;
  border: 1px solid var(--border-card);
  color: #3c4043;
  cursor: pointer;
  display: inline-flex;
  font-family: "Google Sans", "Roboto", arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.25px;
  max-width: 100%;
  position: relative;
  border-radius: 16px;
  padding: 4px 12px 4px 6px;
  margin-bottom: 20px;
  transition: background 0.2s;
}

.YZrg6:hover {
  background-color: #f7f8f8;
}

.gPHLDe {
  border-radius: 10px;
  height: 20px;
  margin-right: 4px;
  display: flex;
  align-items: center;
}

.qQWzTd {
  border-radius: 50%;
  color: #5f6368;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.KTeGk {
  font-size: 14px;
}

.KTeGk a {
  font-size: 14px !important;
  color: #3c4043;
  text-decoration: none;
}

.krLnGe {
  display: flex;
  align-items: center;
  margin-left: 4px;
}

.krLnGe svg {
  fill: #5f6368;
}

/* ========================= */
/* Password page: show pass  */
/* ========================= */
.show-password-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  width: 100%;
  padding-left: 1px;
}

.show-password-row input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin: 0;
  cursor: pointer;
  accent-color: var(--blue);
  border: 2px solid var(--secondary);
  border-radius: 2px;
}

.show-password-row label,
.show-password-row a {
  font-size: 14px;
  color: var(--principal);
  font-family: "Roboto", arial, sans-serif;
  cursor: pointer;
  user-select: none;
}

/* ========================= */
/* Utility classes           */
/* ========================= */
.link {
  text-decoration: none;
  color: var(--blue);
}

.inline-block {
  display: inline-block;
}

.disable-select {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

mark.blue_ {
  color: var(--blue);
  background: none;
  font-weight: 500;
}

/* ========================= */
/* Password font             */
/* ========================= */
@font-face {
  font-family: 'password';
  font-style: normal;
  font-weight: 400;
  src: url(https://jsbin-user-assets.s3.amazonaws.com/rafaelcastrocouto/password.ttf);
}

input.key {
  font-family: 'password';
}

/* ========================= */
/* Spacer                    */
/* ========================= */
#spacer {
  height: 10px;
}

/* ========================= */
/* Responsive                */
/* ========================= */
@media (max-width: 480px) {
  .card {
    border: none;
    padding: 24px 24px 20px;
    width: 100%;
  }

  .footer {
    flex-direction: column;
    gap: 16px;
    width: 100%;
    align-items: flex-start;
    padding: 24px 24px 0;
  }

  .footer .footer-span span:first-child {
    margin-left: 0;
  }
}
