/* Yeti login — MusicBox ZM theme tokens */
.login-yeti {
  --yeti-bg: var(--accent-soft);
  --yeti-stroke: var(--accent);
  --yeti-skin: var(--surface-hover);
  --yeti-skin-light: var(--surface-hover);
  --yeti-body: var(--surface);
  --yeti-hand: var(--surface);
  --yeti-mouth: var(--text-secondary);
  --yeti-tongue: var(--accent);
  --yeti-eye: var(--text);
  --yeti-highlight: var(--accent-hover);
  --yeti-sparkle: #ffffff;
  --yeti-input-bg: var(--input-bg);
}

.am-body--login {
  background: var(--bg) !important;
  background-image: var(--gradient-hero) !important;
  font-family: var(--font);
}

.am-body--login .page-shell--app {
  background: transparent;
  border: none;
  margin-top: 0;
  padding-top: 16px;
  padding-bottom: 32px;
}

.am-body--login .site-header {
  background: var(--header-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(12px);
}

.login-yeti {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: calc(100vh - var(--header-h) - 120px);
  padding: 16px 0 24px;
  box-sizing: border-box;
}

.login-yeti__topbar {
  width: 100%;
  max-width: 400px;
  margin-bottom: 12px;
}

.login-yeti__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
}

.login-yeti__back:hover {
  color: var(--accent-hover);
}

.login-yeti .flash {
  width: 100%;
  max-width: 400px;
  margin-bottom: 12px;
}

.login-yeti__form {
  display: block;
  width: 100%;
  max-width: 400px;
  background: var(--surface);
  margin: 0;
  padding: 2.25em;
  box-sizing: border-box;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  font-family: var(--font);
}

.login-yeti__form .arms path,
.login-yeti__form .arms polygon {
  paint-order: fill stroke;
}

.login-yeti__form .arms .handPad {
  fill: var(--yeti-hand);
  stroke: none;
}

.login-yeti__form .arms .twoFingers path {
  stroke: none;
}

.login-yeti__form .arms .armL > path:not(.handPad),
.login-yeti__form .arms .armR > path:not(.handPad) {
  stroke: none;
}

.login-yeti__form .arms .armL > polygon,
.login-yeti__form .arms .armR > path:first-of-type {
  stroke: var(--yeti-stroke);
  stroke-width: 2.5;
  stroke-linejoin: round;
  stroke-linecap: round;
}

.login-yeti__form .eyeL,
.login-yeti__form .eyeR {
  transition: opacity 0.2s var(--ease);
}

.login-yeti__form .svgContainer {
  position: relative;
  width: 200px;
  height: 200px;
  margin: 0 auto 1em;
  border-radius: 50%;
  pointer-events: none;
}

.login-yeti__form .svgContainer div {
  position: relative;
  width: 100%;
  height: 0;
  overflow: hidden;
  border-radius: 50%;
  padding-bottom: 100%;
}

.login-yeti__form .svgContainer .mySVG {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.login-yeti__form .svgContainer::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: inherit;
  height: inherit;
  box-sizing: border-box;
  border: solid 2.5px var(--yeti-stroke);
  border-radius: 50%;
}

.login-yeti__form .inputGroup {
  margin: 0 0 2em;
  padding: 0;
  position: relative;
}

.login-yeti__form .inputGroup:last-of-type {
  margin-bottom: 0;
}

.login-yeti__form label {
  margin: 0 0 12px;
  display: block;
  font-size: 1.15em;
  color: var(--text);
  font-weight: 700;
  font-family: inherit;
  letter-spacing: -0.02em;
}

.login-yeti__form input[type="email"],
.login-yeti__form input[type="text"],
.login-yeti__form input[type="number"],
.login-yeti__form input[type="url"],
.login-yeti__form input[type="search"],
.login-yeti__form input[type="password"] {
  display: block;
  margin: 0;
  padding: 0.875em 1em 0;
  background: var(--yeti-input-bg);
  border: solid 2px var(--border-strong);
  border-radius: var(--radius-sm);
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  width: 100%;
  height: 65px;
  font-size: 1.35em;
  color: var(--text);
  font-weight: 600;
  font-family: inherit;
  letter-spacing: -0.02em;
  transition: box-shadow 0.2s var(--ease), border-color 0.25s var(--ease);
}

.login-yeti__form input[type="email"]:focus,
.login-yeti__form input[type="text"]:focus,
.login-yeti__form input[type="number"]:focus,
.login-yeti__form input[type="url"]:focus,
.login-yeti__form input[type="search"]:focus,
.login-yeti__form input[type="password"]:focus {
  outline: none;
  box-shadow: 0 0 0 3px var(--accent-soft);
  border-color: var(--accent);
}

.login-yeti__form button {
  display: block;
  margin: 0;
  padding: 0.65em 1em 1em;
  background: var(--accent);
  border: none;
  border-radius: var(--radius-sm);
  box-sizing: border-box;
  box-shadow: none;
  width: 100%;
  height: 65px;
  font-size: 1.35em;
  color: #fff;
  font-weight: 600;
  font-family: inherit;
  letter-spacing: -0.02em;
  cursor: pointer;
  transition: background-color 0.2s var(--ease), transform 0.15s var(--ease);
}

.login-yeti__form button:hover,
.login-yeti__form button:active {
  background: var(--accent-hover);
}

.login-yeti__form button:active {
  transform: scale(0.99);
}

.login-yeti__form .inputGroup1 .helper {
  position: absolute;
  z-index: 1;
  font-family: inherit;
}

.login-yeti__form .inputGroup1 .helper1 {
  top: 0;
  left: 0;
  transform: translate(1em, 2.2em) scale(1);
  transform-origin: 0 0;
  color: var(--text-tertiary);
  font-size: 1.35em;
  font-weight: 400;
  opacity: 0.75;
  pointer-events: none;
  transition: transform 0.2s var(--ease), opacity 0.2s linear;
}

.login-yeti__form .inputGroup1.focusWithText .helper {
  transform: translate(1em, 1.55em) scale(0.6);
  opacity: 1;
  color: var(--accent);
}

.login-yeti__form .inputGroup2 input[type="password"] {
  padding: 0.4em 1em 0.5em;
}

.login-yeti__form .inputGroup2 input[type="text"] {
  padding: 0.025em 1em 0;
}

.login-yeti__form .inputGroup2 #showPasswordToggle {
  display: block;
  padding: 0 0 0 1.45em;
  position: absolute;
  top: 0.25em;
  right: 0;
  font-size: 1em;
  color: var(--text-secondary);
  cursor: pointer;
}

.login-yeti__form .inputGroup2 #showPasswordToggle input {
  position: absolute;
  z-index: -1;
  opacity: 0;
  width: auto;
  height: auto;
  padding: 0;
  border: 0;
  background: none;
}

.login-yeti__form .inputGroup2 #showPasswordToggle .indicator {
  position: absolute;
  top: 0;
  left: 0;
  height: 0.85em;
  width: 0.85em;
  background: var(--yeti-input-bg);
  border: solid 2px var(--border-strong);
  border-radius: 3px;
}

.login-yeti__form .inputGroup2 #showPasswordToggle .indicator::after {
  content: "";
  position: absolute;
  left: 0.25em;
  top: 0.025em;
  width: 0.2em;
  height: 0.5em;
  border: solid var(--accent);
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
  visibility: hidden;
}

.login-yeti__form .inputGroup2 #showPasswordToggle input:checked ~ .indicator::after {
  visibility: visible;
}

.login-yeti__form .inputGroup2 #showPasswordToggle input:focus ~ .indicator,
.login-yeti__form .inputGroup2 #showPasswordToggle input:hover ~ .indicator {
  border-color: var(--accent);
}

.login-yeti__form .inputGroup2 #showPasswordToggle input:disabled ~ .indicator {
  opacity: 0.5;
}

.login-yeti__form .inputGroup2 #showPasswordToggle input:disabled ~ .indicator::after {
  visibility: hidden;
}

.login-yeti__footnote {
  width: 100%;
  max-width: 400px;
  margin: 14px 0 0;
  text-align: center;
  font-size: 15px;
  color: var(--text-secondary);
}

.login-yeti__footnote a {
  color: var(--accent);
  font-weight: 600;
}

.login-yeti__footnote a:hover {
  color: var(--accent-hover);
}
