/* 全站统一的登录 / 注册 / 重置密码弹窗。
   调色板写死（不依赖各页面的 CSS 变量），保证 app / price / canvas 三处外观完全一致。 */
.lc-auth{
  --lc-auth-bg:oklch(13% 0.007 270);--lc-auth-field:oklch(10% 0.005 270);
  --lc-auth-border:oklch(22% 0.012 270);--lc-auth-border-hi:oklch(30% 0.018 270);
  --lc-auth-accent:oklch(58% 0.22 290);--lc-auth-accent-hi:oklch(72% 0.18 290);
  --lc-auth-text:oklch(96% 0.003 270);--lc-auth-text-2:oklch(72% 0.008 270);--lc-auth-text-3:oklch(58% 0.008 270);
  --lc-auth-success:oklch(65% 0.18 155);--lc-auth-error:oklch(62% 0.22 15);
  --lc-auth-font:'Inter','PingFang SC','Hiragino Sans GB',system-ui,sans-serif;
  position:fixed;inset:0;z-index:1400;display:none;align-items:center;justify-content:center;padding:20px;
  background:oklch(0% 0 0/.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font-family:var(--lc-auth-font);color:var(--lc-auth-text);
}
.lc-auth.open{display:flex}
.lc-auth-dialog{
  position:relative;width:100%;max-width:400px;max-height:calc(100vh - 40px);overflow-y:auto;
  padding:36px;border:1px solid var(--lc-auth-border-hi);border-radius:20px;background:var(--lc-auth-bg);
  box-shadow:0 32px 80px oklch(0% 0 0/.6);animation:lcAuthIn .22s cubic-bezier(.22,1,.36,1);
}
@keyframes lcAuthIn{from{opacity:0;transform:translateY(-16px) scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.lc-auth-dialog{animation:none}}
.lc-auth-close{
  position:absolute;top:14px;right:16px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--lc-auth-border);border-radius:7px;background:oklch(100% 0 0/.05);
  color:var(--lc-auth-text-3);font-size:14px;cursor:pointer;transition:color .15s,background .15s;
}
.lc-auth-close:hover{color:var(--lc-auth-text);background:oklch(16% 0.009 270)}
.lc-auth-logo{display:block;width:148px;height:auto;margin-bottom:24px}
.lc-auth-title{font-size:22px;font-weight:800;letter-spacing:-.8px;margin-bottom:4px}
.lc-auth-sub{font-size:13px;color:var(--lc-auth-text-2);margin-bottom:24px}
.lc-auth-note{
  margin-bottom:16px;padding:10px 12px;border-left:2px solid var(--lc-auth-accent);border-radius:0 8px 8px 0;
  background:oklch(58% 0.22 290/.08);color:var(--lc-auth-text-2);font-size:12px;line-height:1.6;
}
.lc-auth-error{
  display:none;margin-bottom:14px;padding:10px 14px;border:1px solid oklch(62% 0.22 15/.22);border-radius:8px;
  background:oklch(62% 0.22 15/.07);color:var(--lc-auth-error);font-size:13px;line-height:1.5;
}
.lc-auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.lc-auth-label{font-size:12px;font-weight:600;color:var(--lc-auth-text-2)}
.lc-auth-label em{font-style:normal;font-weight:400;color:var(--lc-auth-text-3)}
.lc-auth-input{
  width:100%;padding:10px 14px;border:1px solid var(--lc-auth-border-hi);border-radius:8px;
  background:var(--lc-auth-field);color:var(--lc-auth-text);font:13.5px var(--lc-auth-font);outline:none;
  transition:border-color .2s,box-shadow .2s;
}
.lc-auth-input:focus{border-color:var(--lc-auth-accent);box-shadow:0 0 0 3px oklch(58% 0.22 290/.12)}
.lc-auth-input::placeholder{color:var(--lc-auth-text-3)}
.lc-auth-row{display:flex;gap:8px;align-items:stretch}
.lc-auth-row .lc-auth-input{flex:1;min-width:0}
.lc-auth-code-btn{
  flex-shrink:0;white-space:nowrap;padding:10px 14px;border:1px solid var(--lc-auth-border-hi);border-radius:8px;
  background:transparent;color:var(--lc-auth-text-2);font:12.5px var(--lc-auth-font);cursor:pointer;transition:color .15s,border-color .15s;
}
.lc-auth-code-btn:hover:not(:disabled){color:var(--lc-auth-text);border-color:var(--lc-auth-accent)}
.lc-auth-code-btn:disabled{opacity:.45;cursor:not-allowed}
.lc-auth-hint{margin-top:4px;font-size:11.5px;color:var(--lc-auth-text-3);line-height:1.5}
.lc-auth-hint.ok{color:var(--lc-auth-success)}
.lc-auth-hint.bad{color:var(--lc-auth-error)}
.lc-auth-submit{
  width:100%;margin-top:4px;padding:12px;border:0;border-radius:10px;
  background:var(--lc-auth-accent);color:#fff;font:700 14px var(--lc-auth-font);cursor:pointer;transition:filter .15s;
}
.lc-auth-submit:hover:not(:disabled){filter:brightness(1.1)}
.lc-auth-submit:disabled{opacity:.6;cursor:not-allowed}
.lc-auth-toggle{margin-top:18px;color:var(--lc-auth-text-3);font-size:13px;text-align:center}
.lc-auth-toggle button{
  padding:0;border:0;background:none;color:var(--lc-auth-accent-hi);font:600 13px var(--lc-auth-font);cursor:pointer;
}
.lc-auth-toggle button:hover{text-decoration:underline}
.lc-auth-back{display:inline-block;margin-top:14px;color:var(--lc-auth-text-3);font-size:12px;text-decoration:none}
.lc-auth-back:hover{color:var(--lc-auth-text-2)}
@media (max-width:480px){.lc-auth-dialog{padding:28px 22px}}
