/* 登录 / 注册页 · 方案 A「舞台」（2026-10-23，TK 选定）
   左边棚拍大图（261008 Child Star 舞台），右边纸色表单；按钮舞台绿，焦点幕布金。
   换图：替换 /assets/auth-stage-*.jpg，改 server.js 里的引用版本号。 */
body:has(.as-shell) { margin: 0; padding: 0; background: #f6f2e8; }

.as-shell {
  --as-paper: #f6f2e8;
  --as-ink: #080806;
  --as-muted: #6b675e;
  --as-line: #d9d3c4;
  --as-stage: #1f5a4c;
  --as-stage-dark: #174538;
  --as-curtain: #c99a1e;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(400px, 1fr);
  min-height: 100vh;
  min-height: 100dvh;
  color: var(--as-ink);
  background: var(--as-paper);
}

.as-photo { position: relative; overflow: hidden; background: #2a2416; }
.as-photo img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 0%;
}

.as-side { display: grid; place-items: center; padding: 48px 32px; }
.as-box { width: min(380px, 100%); }

.as-shell .as-wordmark { display: block; width: 190px; height: auto; margin: 0 0 40px; }
.as-shell h1 { margin: 0 0 28px; font-size: 26px; line-height: 1.3; letter-spacing: .02em; color: var(--as-ink); }
.as-shell h1 em { font-style: normal; color: var(--as-stage); }

.as-shell .as-form { display: grid; gap: 14px; margin: 0; }
.as-shell .as-form label { display: grid; gap: 6px; margin: 0; font-size: 13px; color: var(--as-muted); }
.as-shell .as-form input {
  width: 100%; height: 46px; box-sizing: border-box;
  padding: 0 14px;
  font: inherit; font-size: 15px; color: var(--as-ink);
  border: 1.5px solid var(--as-line); border-radius: 10px;
  background: #fff; box-shadow: none; outline: none;
}
.as-shell .as-form input:focus { border-color: var(--as-stage); box-shadow: 0 0 0 3px rgba(201, 154, 30, .28); }
.as-shell .as-form button[type="submit"] {
  height: 48px; margin-top: 6px; box-sizing: border-box;
  border: 0; border-radius: 10px;
  font: inherit; font-size: 16px; font-weight: 600; letter-spacing: .2em;
  color: #fff !important; background: var(--as-stage) !important;
  box-shadow: none; cursor: pointer;
}
.as-shell .as-form button[type="submit"]:hover { background: var(--as-stage-dark) !important; }

.as-shell .as-alert {
  margin: 0; padding: 10px 14px; border-radius: 10px;
  font-size: 14px; line-height: 1.5;
  color: #8a2a1f; background: #fbe9e5; border: 1px solid #f0c6bd;
}
.as-shell .as-alert.success { color: var(--as-stage-dark); background: #e5f0ea; border-color: #bcd6c8; }

.as-shell .as-links { margin: 18px 0 0; font-size: 13px; color: var(--as-muted); }
.as-shell .as-links a { color: var(--as-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

.as-stripe { display: flex; gap: 6px; margin-top: 44px; }
.as-stripe span { width: 28px; height: 6px; border-radius: 3px; background: var(--as-curtain); }
.as-stripe span:nth-child(2) { background: var(--as-stage); }
.as-stripe span:nth-child(3) { background: var(--as-ink); }

/* 平板竖屏、手机：照片在上，表单卡片往上压一点 */
@media (max-width: 820px) {
  .as-shell { grid-template-columns: 1fr; grid-template-rows: 42vh auto; }
  .as-photo img { object-position: 50% 12%; }
  .as-side { position: relative; align-items: start; margin-top: -28px; padding: 0 0 calc(32px + env(safe-area-inset-bottom)); }
  .as-box {
    width: 100%; box-sizing: border-box;
    padding: 28px 20px 0;
    background: var(--as-paper); border-radius: 22px 22px 0 0;
  }
  .as-shell .as-wordmark { width: 150px; margin-bottom: 22px; }
  .as-shell h1 { font-size: 22px; margin-bottom: 22px; }
  .as-stripe { display: none; }
}
@media (min-width: 560px) and (max-width: 820px) {
  .as-box { width: min(480px, 100%); margin: 0 auto; border-radius: 22px; padding: 32px 32px 28px; }
}
