/* R1-LOGIN-V8 · metafuture 参数移植层 (MF-AUDIT-1 实测值 · P0 dump ts=1784847399)
   加载于 login_v8.html inline <style> 之后 · 同权重后到者胜 · 只覆盖不重写 */
:root{
  --mf-accent:#5c82ff;        /* [3] 蓝紫主 */
  --mf-accent-hi:#7c9cff;     /* [3] hover 亮档 */
  --mf-up:#34f0c0;            /* [4] 涨/正 */
  --mf-warn:#f5b971;          /* [4] 跌/警示 */
  --mf-t-fast:0.12s ease;                          /* [1] P0-1 小元素档 (实测默认 ease) */
  --mf-t-med:0.15s cubic-bezier(0.4, 0, 0.2, 1);   /* [1] P0-1 主档实测 easing */
}

/* [2] 深底遮罩 · 结构沿 v7 (radial 左下暗区锚 + linear 下→上) · 色相换 #060a14→#15171f
   alpha 沿 v7 量级 · NYC 城市图仍可辨 */
/* FIX-B (v8.1): alpha 整体 ×0.65 (下调 35%) · NYC 建筑轮廓可辨 · 深底色相保留 */
body::before{
  background:
   radial-gradient(120% 90% at 20% 90%, rgba(6,10,20,.57) 0%, rgba(6,10,20,.23) 45%, transparent 70%),
   linear-gradient(0deg, rgba(6,10,20,.25), rgba(21,23,31,.10));
}

/* [1] transition 双档 · 0.12s 小元素 (label/图标) · 0.15s 按钮/输入框 */
.fld{transition:background-color var(--mf-t-med)}
.fld label{transition:color var(--mf-t-fast)}
form{transition:border-color var(--mf-t-med), box-shadow var(--mf-t-med)}
button{transition:background-color var(--mf-t-med), filter var(--mf-t-med)}
button span{transition:transform var(--mf-t-fast)}

/* [3] 蓝紫强调 · 按钮底色 + 输入框 focus 边 (v7 无 typewriter · 该子项弃 · 见 SUMMARY) */
button{background:var(--mf-accent)}
button:hover{background:var(--mf-accent-hi);filter:none}
form:focus-within{border-color:var(--mf-accent)}
.fld:focus-within label{color:var(--mf-accent)}

/* [8] 输入框质感 · P0-3 ghost-btn/glow-btn 实测值
   border rgba(130,160,255,.28) · bg tint rgba(92,130,255,.05) · radius 8px · focus glow verbatim */
form{
  position:relative;
  border:1px solid rgba(130,160,255,.28);
  border-radius:8px;
  overflow:hidden;
  background:linear-gradient(rgba(92,130,255,.05),rgba(92,130,255,.05)), oklch(0.12 0.02 250/.6);
}
form:focus-within{
  box-shadow:rgba(255, 255, 255, 0.12) 0px 0px 0px 1px inset,
             rgba(80, 130, 255, 0.7) 0px 12px 44px -12px,
             rgba(92, 240, 255, 0.5) 0px 0px 60px -14px;
}

/* [4] 语义色 · 只改 class 色值 · JS 涨跌判定逻辑 0 触碰 */
.delta.up{color:var(--mf-up)}
.mcell .dl.up{color:var(--mf-up)}
.delta.down{color:var(--mf-warn)}
.mcell .dl.down{color:var(--mf-warn)}
.err{color:var(--mf-warn)}

/* [5] holoSlide · P0-4 keyframes verbatim · 登入卡片边缘扫光 · 8s 慢速 · 峰值 alpha ≤.13 */
@keyframes holoSlide {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
form::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(115deg, transparent 38%, rgba(92,130,255,.13) 47%, rgba(92,240,255,.10) 53%, transparent 62%);
  background-size:250% 250%;
  animation:holoSlide 8s ease-in-out infinite;
}
@media (prefers-reduced-motion:reduce){form::after{animation:none}}

/* FIX-A (v8.1): sparkline 亮景对比度 · 仅色值/透明度 · mini() 绘制逻辑 0 触碰
   P0 实证: 淡灰 oklch(.82/.6)·op .65 在日景城市图不可辨 (v7 同参数同问题 · 非 regression) */
.ms{opacity:.85}
.ms path{stroke:var(--mf-up)}
