/* 小码力 · 认证页外观：浅色底、柔光晕、圆角卡片与渐变主色。仅作用于 .app-auth。 */
.app-auth.login-container { position:relative; min-height:calc(100vh - 64px); width:100%; padding:40px 28px 56px; display:flex; align-items:center; background:#f8f9fd; color:#20243c; isolation:isolate; }
.app-auth.login-container::before { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(ellipse 640px 400px at 30% 40px,rgba(213,209,255,.42),transparent 75%),radial-gradient(ellipse 570px 400px at 78% 320px,rgba(203,226,255,.34),transparent 75%),linear-gradient(180deg,#fff 0,rgba(255,255,255,.25) 560px,transparent 840px); }
.app-auth .login-card-wrapper { width:100%; max-width:1160px; margin:0 auto; }
.app-auth .login-card { display:grid; grid-template-columns:1.04fr 1fr; width:100%; min-height:640px; border:1px solid rgba(255,255,255,.9); border-radius:24px; overflow:hidden; background:#fff; box-shadow:0 24px 80px -32px rgba(73,63,126,.24),0 2px 8px rgba(48,52,92,.035); }

/* 品牌区：大标题、一句说明与充足留白，不再堆叠卡片和场景标签。 */
.app-auth .brand-section { position:relative; min-width:0; overflow:hidden; background:radial-gradient(ellipse at 100% 0,rgba(225,219,255,.38),transparent 62%),radial-gradient(ellipse at 0 100%,rgba(219,234,255,.4),transparent 65%),linear-gradient(150deg,#fcfbff,#f5f4fc 58%,#f2f5fc); box-shadow:inset -1px 0 rgba(111,109,166,.055); }
.app-auth .brand-content { position:relative; display:flex; flex-direction:column; height:100%; padding:50px 48px 40px; gap:40px; }
.app-auth .brand-eyebrow { margin:0; color:#6c6584; font-size:13px; font-weight:600; letter-spacing:.06em; line-height:1.7; }
.app-auth .brand-headline { margin:auto 0; padding:12px 0 24px; }
.app-auth .headline-main { margin:0 0 24px; font-size:clamp(44px,4.3vw,58px); line-height:1.3; font-weight:800; letter-spacing:.015em; color:#24243d; }
.app-auth .headline-main span { display:block; margin-top:4px; color:#7160cd; background:linear-gradient(105deg,#5e65c5 5%,#7d5ac9 80%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.app-auth .headline-sub { margin:0; max-width:420px; font-size:15px; line-height:1.9; color:#646d83; overflow-wrap:break-word; }
.app-auth .brand-audience-note { margin:0; color:#73788d; font-size:12px; letter-spacing:.025em; line-height:1.8; }

/* 表单区 */
.app-auth .form-section { display:flex; min-width:0; align-items:center; padding:44px 40px; background:#fff; }
.app-auth .form-wrapper { width:100%; max-width:398px; margin:0 auto; }
.app-auth .auth-form-content { padding-top:4px; }
.app-auth .form-header { text-align:start; }
.app-auth .form-title { margin:0 0 8px; font-size:25px; font-weight:700; letter-spacing:-.035em; line-height:1.4; color:#20243c; }
.app-auth .form-subtitle { margin:0; font-size:13px; color:#7c8296; line-height:1.75; }
.app-auth .login-form { margin-top:6px; }
.app-auth .input-group { margin-bottom:18px; }
.app-auth .input-label { display:flex; align-items:center; margin-bottom:7px; color:#4b5270; font-size:12px; font-weight:600; }
.app-auth .input-label .v-icon { color:#8d93ad; }

/* 输入框：柔和描边、圆角、聚焦淡紫光晕（覆盖 Vuetify 主题类的 !important 与 dense 尺寸） */
.app-auth .modern-input { font-size:14px; }
.app-auth .modern-input > .v-input__control { min-height:46px !important; }
.app-auth .modern-input.v-text-field--outlined > .v-input__control > .v-input__slot { min-height:46px !important; border-radius:14px !important; background:#fbfbfe !important; transition:box-shadow .18s,background .18s; }
.app-auth .modern-input.v-text-field--outlined:not(.v-input--is-focused):hover > .v-input__control > .v-input__slot { background:#fff !important; }
.app-auth .modern-input.v-text-field--outlined.v-input--is-focused > .v-input__control > .v-input__slot { background:#fff !important; box-shadow:0 0 0 3px rgba(126,99,218,.075); }
.app-auth .modern-input.v-text-field--outlined:not(.error--text):not(.success--text) > .v-input__control > .v-input__slot > fieldset { border:1px solid #e6e8f1 !important; }
.app-auth .modern-input.v-text-field--outlined:not(.v-input--is-focused):not(.error--text):not(.success--text):hover > .v-input__control > .v-input__slot > fieldset { border-color:#c3c6e0 !important; }
.app-auth .modern-input.v-text-field--outlined.v-input--is-focused:not(.error--text):not(.success--text) > .v-input__control > .v-input__slot > fieldset { border:1.5px solid #8a7be0 !important; }
.app-auth .modern-input.v-text-field--outlined.error--text > .v-input__control > .v-input__slot > fieldset { border:1.5px solid #dc93a0 !important; }
.app-auth .modern-input.v-text-field--outlined.success--text > .v-input__control > .v-input__slot > fieldset { border:1.5px solid #7cbba2 !important; }
.app-auth .modern-input input,.app-auth .modern-input textarea { color:#28304a; font-size:14px; }
.app-auth .modern-input input::placeholder { color:#9aa3b6; opacity:1; }
.app-auth .modern-input .v-input__append-inner { margin-top:11px; }
.app-auth .modern-input .v-icon { color:#8d93ad; }
.app-auth .modern-input .v-messages__message { color:#c24455; font-size:11px; }
.app-auth .modern-input.v-text-field--outlined.v-input--is-focused .v-label { color:#6255c7; }
.app-auth .form-options { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.app-auth .remember-checkbox .v-label { font-size:12px; color:#7c8296; }
.app-auth .v-input--selection-controls:not(.v-input--is-disabled) .v-icon { color:#6d63d8 !important; }
.app-auth .forgot-link { color:#6758d8; font-size:12px; text-decoration:none; }

/* 主按钮：与首页同款渐变与柔光投影 */
.app-auth .login-btn.v-btn { min-height:48px; height:48px; border-radius:15px; background:linear-gradient(135deg,#6964dc,#8261d7) !important; color:#fff !important; box-shadow:inset 0 1px rgba(255,255,255,.2),0 6px 16px -6px rgba(110,90,199,.45) !important; font-size:14px; font-weight:600; letter-spacing:.02em; text-transform:none; }
.app-auth .login-btn .v-icon,.app-auth .login-btn .btn-text { color:#fff; }
.app-auth .login-btn:hover:not(.v-btn--disabled) { filter:brightness(1.045); }
.app-auth .login-btn.v-btn--disabled { background:#f0eff7 !important; box-shadow:none !important; }
.app-auth .login-btn.v-btn--disabled .btn-text,.app-auth .login-btn.v-btn--disabled .v-icon { color:#a9adc4; }
.app-auth .code-btn.v-btn { height:46px !important; min-width:104px; padding:0 13px; border-radius:14px; color:#6255c7 !important; background:#f4f2ff !important; font-weight:600; font-size:12px; box-shadow:none !important; text-transform:none; }
.app-auth .code-btn.v-btn--disabled { background:#f2f3f7 !important; color:#9ca5b7 !important; }
.app-auth .modern-alert.v-alert { padding:10px 14px; border:1px solid #f6d8dc; border-radius:14px; background:#fff6f7 !important; color:#b83447 !important; font-size:13px; overflow-wrap:anywhere; }
.app-auth .modern-alert.v-alert:before { opacity:0; }
.app-auth .modern-alert .v-alert__content,.app-auth .modern-alert .v-icon { color:inherit !important; }
.app-auth .agreement-label .primary--text { color:#6758d8 !important; }
.app-auth .security-notice { display:flex; align-items:center; justify-content:center; color:#929cae; font-size:11px; line-height:1.6; }

@media (min-width:960px) and (max-width:1120px) {
  .app-auth .brand-content { padding:44px 34px 36px; }
  .app-auth .form-section { padding:38px 28px; }
  .app-auth .headline-main { font-size:46px; }
  .app-auth .headline-sub { font-size:14px; }
}
@media (max-width:959px) {
  .app-auth.login-container { align-items:flex-start; padding:24px 22px 40px; }
  .app-auth .login-card-wrapper { max-width:560px; }
  .app-auth .login-card { grid-template-columns:1fr; min-height:0; }
  .app-auth .brand-section { box-shadow:inset 0 -1px rgba(111,109,166,.055); }
  .app-auth .brand-content { height:auto; padding:28px 30px; gap:0; }
  .app-auth .brand-eyebrow { margin-bottom:18px; font-size:12px; }
  .app-auth .brand-headline { margin:0; padding:0; }
  .app-auth .headline-main { margin-bottom:12px; font-size:36px; }
  .app-auth .headline-main span { display:inline; margin-top:0; }
  .app-auth .headline-sub { max-width:none; font-size:13px; line-height:1.85; }
  .app-auth .brand-audience-note { margin-top:14px; font-size:11px; }
  .app-auth .form-section { padding:28px 30px 32px; }
}
@media (max-width:600px) {
  .app-auth.login-container { padding:16px 16px 32px; padding-inline-start:calc(16px + env(safe-area-inset-left,0px)); padding-inline-end:calc(16px + env(safe-area-inset-right,0px)); }
  .app-auth .login-card { border-radius:20px; }
  .app-auth .brand-content { padding:24px 22px; }
  .app-auth .brand-eyebrow { margin-bottom:16px; font-size:11px; }
  .app-auth .headline-main { font-size:30px; }
  .app-auth .headline-sub { font-size:12.5px; }
  .app-auth .brand-audience-note { margin-top:12px; font-size:10.5px; letter-spacing:0; }
  .app-auth .form-section { padding:24px 20px 28px; }
  .app-auth .form-title { font-size:22px; }
}
@media (max-width:360px) { .app-auth .brand-content { padding:22px 18px; } .app-auth .headline-main { font-size:28px; } .app-auth .form-section { padding-inline:16px; } }
@media (prefers-reduced-motion:reduce) { .app-auth * { animation:none !important; transition:none !important; } }
@media (forced-colors:active) {
  .app-auth .headline-main span { background:none; -webkit-text-fill-color:CanvasText; }
  .app-auth .login-card { border:1px solid CanvasText; }
}
