/* Scoped to the authentication route; load after style.css and landing.css. */
main.auth-v2-host { max-width: 1160px; padding: 32px 28px 44px; }
.auth-v2-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(340px,.9fr); align-items: center; gap: 56px; min-height: min(660px,calc(100svh - 206px)); color: #153b2b; }
.auth-v2-art { min-width: 0; }
.auth-v2-book-stage { position: relative; isolation: isolate; height: clamp(390px,41vw,520px); width: 100%; }
.auth-v2-book-canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; touch-action: pan-y; }
.auth-v2-book-halo { position: absolute; z-index: -1; inset: 22px 0 42px; background: radial-gradient(ellipse at 50% 54%,#e0efc7 0,#edf5e088 44%,transparent 72%); }
.auth-v2-book-caption { position: absolute; bottom: 3px; left: 50%; translate: -50% 0; display: flex; justify-content: center; align-items: center; gap: 9px; width: max-content; max-width: calc(100% - 20px); color: #6e8268; font-size: .72rem; line-height: 1.5; text-align: center; }
.auth-v2-mouse { width: 11px; height: 17px; flex: none; border: 1px solid currentColor; border-radius: 7px; position: relative; }
.auth-v2-mouse::after { content: ''; position: absolute; left: 4px; top: 2px; height: 4px; border-left: 1px solid currentColor; }
button.auth-v2-book-motion { min-height: 36px; min-width: 36px; padding: 4px; flex: none; border: 0; border-radius: 8px; background: transparent; box-shadow: none; color: #52734b; font-size: .85rem; }
button.auth-v2-book-motion:hover { background: #e9f1df; color: #254c31; box-shadow: none; }
.auth-v2-form-section { width: 100%; min-width: 0; max-width: 450px; justify-self: end; }
.auth-v2-card { width: 100%; border: 1px solid #d2dfc8; border-radius: 17px; padding: 31px 32px 32px; background: #fff; box-shadow: 0 12px 42px #23492306; }
.auth-v2-heading { margin-bottom: 24px; }
.auth-v2-title { margin: 0 0 9px; color: #143b2b; font-size: clamp(1.65rem,2.5vw,2rem); font-weight: 700; line-height: 1.19; letter-spacing: -.035em; overflow-wrap: anywhere; }
.auth-v2-description { margin: 0; color: #728176; font-size: .91rem; line-height: 1.55; }
.auth-v2-tabs { display: flex; gap: 3px; padding: 3px; margin: 0 0 24px; border: 1px solid #e4ebe0; border-radius: 12px; background: #f5f8f1; }
button.auth-v2-tab { flex: 1; min-width: 0; min-height: 40px; padding: 9px 8px; border: 1px solid transparent; border-radius: 9px; background: transparent; color: #294a36; font-size: .84rem; font-weight: 500; box-shadow: none; }
button.auth-v2-tab:hover { border-color: transparent; background: #e9f1df; color: #163c27; box-shadow: none; }
button.auth-v2-tab[aria-selected="true"] { border-color: #c6ee91; background: #cff394; color: #173d29; font-weight: 650; box-shadow: 0 1px 3px #315b2010; }
.auth-v2-form { display: grid; gap: 21px; margin: 0; }
.auth-v2-field { min-width: 0; }
.auth-v2-label { display: block; margin: 0 0 8px; color: #254632; font-size: .84rem; line-height: 1.4; font-weight: 650; }
input.auth-v2-input { width: 100%; min-width: 0; min-height: 46px; padding: 11px 13px; border: 1px solid #d5ddd7; border-radius: 10px; background: #fff; color: #193c2a; font-size: .94rem; line-height: 1.4; }
input.auth-v2-input:hover { border-color: #adbea5; }
input.auth-v2-input:focus { border-color: #629449; background: #fff; }
input.auth-v2-input::placeholder { color: #859289; opacity: 1; }
input.auth-v2-input[readonly] { color: #546b58; background: #f8faf5; }
.auth-v2-hint { margin: 7px 0 0; color: #738077; font-size: .75rem; line-height: 1.5; }
.auth-v2-password { position: relative; }
input.auth-v2-password-input { padding-right: 54px; }
button.auth-v2-password-toggle { position: absolute; top: 2px; right: 2px; bottom: 2px; min-height: 42px; min-width: 44px; padding: 10px; border: 0; border-radius: 8px; background: transparent; color: #30523e; box-shadow: none; }
button.auth-v2-password-toggle:hover { background: #eef5e7; color: #153b2b; box-shadow: none; }
.auth-v2-eye { position: relative; display: block; width: 20px; height: 12px; border: 1.7px solid currentColor; border-radius: 70% 70%; }
.auth-v2-eye::before { content: ''; position: absolute; width: 5px; height: 5px; left: 50%; top: 50%; translate: -50% -50%; border: 1.5px solid currentColor; border-radius: 50%; }
.auth-v2-password-toggle[aria-pressed="true"] .auth-v2-eye::after { content: ''; position: absolute; width: 25px; left: -4px; top: 4px; border-top: 1.7px solid currentColor; rotate: -38deg; }
button.auth-v2-submit { width: 100%; min-height: 49px; margin-top: 3px; padding: 12px 20px; gap: 14px; border: 1px solid #245b38; border-radius: 10px; background: #245b38; color: #fff; font-size: .95rem; font-weight: 650; line-height: 1.4; }
button.auth-v2-submit:hover { background: #1c4b2e; border-color: #1c4b2e; color: #fff; box-shadow: 0 5px 14px #234e2512; }
button.auth-v2-submit:disabled { background: #3c6c4c; border-color: #3c6c4c; color: #fff; opacity: 1; }
.auth-v2-submit-arrow { font-size: 1.45rem; font-weight: 400; line-height: .8; }
.auth-v2-home { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; margin: 12px 0 0 22px; padding: 4px 10px; color: #386547; font-size: .81rem; text-decoration: none; }
.auth-v2-home:hover { color: #174a2b; text-decoration: underline; }
.auth-v2-notice { margin: 0 0 22px; padding: 12px 14px; border: 1px solid #ead9b3; border-radius: 9px; background: #fff9ec; color: #805e29; font-size: .81rem; line-height: 1.6; overflow-wrap: anywhere; }
.auth-v2-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; margin: 0; padding: 0; border: 0; }
.auth-v2-host button:focus-visible,.auth-v2-host a:focus-visible,.auth-v2-host input:focus-visible { outline: 3px solid #659344; outline-offset: 3px; }
@media (max-width: 1000px) and (min-width: 761px) {
  .auth-v2-layout { gap: 24px; grid-template-columns: minmax(0,1fr) minmax(320px,420px); }
  .auth-v2-card { padding: 28px; }
  .auth-v2-book-stage { height: 430px; }
  .auth-v2-book-caption { font-size: .67rem; gap: 7px; }
}
@media (max-width: 760px) {
  main.auth-v2-host { max-width: none; min-height: calc(100svh - 74px); padding: 29px 24px 36px; background: #fff; }
  .auth-v2-layout { display: block; min-height: 0; }
  .auth-v2-art { display: none; }
  .auth-v2-form-section { width: 100%; max-width: none; }
  .auth-v2-card { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .auth-v2-heading { margin-bottom: 26px; }
  .auth-v2-title { font-size: 1.9rem; line-height: 1.22; }
  .auth-v2-description { font-size: .94rem; }
  .auth-v2-tabs { margin-bottom: 26px; }
  button.auth-v2-tab { min-height: 43px; font-size: .87rem; }
  .auth-v2-form { gap: 22px; }
  input.auth-v2-input { min-height: 49px; font-size: 1rem; }
  .auth-v2-label { font-size: .88rem; }
  .auth-v2-hint { font-size: .78rem; }
  button.auth-v2-password-toggle { min-height: 45px; }
  button.auth-v2-submit { min-height: 51px; margin-top: 5px; font-size: 1rem; }
  .auth-v2-home { margin: 19px 0 0 -10px; font-size: .86rem; }
}
@media (max-width: 360px) {
  main.auth-v2-host { padding: 25px 18px 30px; }
  .auth-v2-title { font-size: 1.7rem; }
  button.auth-v2-tab { font-size: .82rem; }
}
