 THEME TGY-FAV-LOCK-20250817 — FROZEN 2025.4 (logo+title inner gloss, starfield canvas) 
root{
  --bg1#070d1a; --bg2#0a1424; --bg3#081427;
  --text#e8f1ff; --muted#a9b8cf;
  --glass#ffffff14; --glass-brd#ffffff28;
  --primary#58b7ff; --primary-2#7aa2ff; --accent#a78bfa; --danger#ff6b6b;

   布局手柄 
  --panel-w 1040px; --panel-min-h 560px;
  --card-w 780px;
  --logo-size 44px; --title-size 28px;
  --form-max 400px;

  --radius16px; --radius-lg28px;
  --shadow0 14px 32px rgba(0,0,0,.42), 0 1px 0 rgba(255,255,255,.05) inset;
}

html,body{height100%}
body{
  margin0; colorvar(--text);
  font-family-apple-system,BlinkMacSystemFont,Segoe UI,PingFangSC,Helvetica,Arial,Microsoft YaHei,sans-serif;
   深色渐变 + 角落柔光（静态底色，动态星空由 canvas 叠加） 
  background
    radial-gradient(900px 600px at 86% 10%, #0f2a52b3, transparent 60%),
    radial-gradient(1300px 85% at 50% 130%, rgba(0,0,0,.42), transparent 60%),
    linear-gradient(160deg, var(--bg1) 0%, var(--bg2) 55%, var(--bg3) 100%);
  overflow-xhidden;
}

 动态画布固定在最底层 
#bgCanvas{ positionfixed; inset0; z-index0; pointer-eventsnone; displayblock; }

 内容层抬高，覆盖在画布之上 
.topbar, main, .footer{ positionrelative; z-index1; }

.container{ widthmin(1200px,92vw); margin-inlineauto; }

 顶部细条（登录页默认无右侧按钮） 
.topbar{ displayflex; align-itemscenter; justify-contentspace-between; padding10px 0; min-height48px; }
.nav-right{ displayflex; gap10px; }
.chip{ displayinline-block; padding8px 12px; border-radius12px; text-decorationnone; color#dce8ff; background#ffffff12; border1px solid #ffffff22; transitionfilter .15s ease, transform .05s ease;}
.chiphover{ filterbrightness(1.08) } .chipactive{ transformtranslateY(1px) }
.chip-blue{ backgroundlinear-gradient(180deg,#9ed4ff33,#5aa9ff33); border-color#7db8ff66 }
.chip-red{  backgroundlinear-gradient(180deg,#ffadad33,#ff6b6b33); border-color#ff8f8f66 }

 外层玻璃面板 
.panel{
  widthmin(var(--panel-w), 96vw); min-height var(--panel-min-h);
  margin28px auto 24px; padding36px 40px; border-radius var(--radius-lg);
  background linear-gradient(180deg, #ffffff12 0%, #ffffff08 100%);
  border1px solid var(--glass-brd);
  box-shadow 0 22px 70px rgba(0,0,0,.45), 0 1px 0 rgba(255,255,255,.05) inset;
  backdrop-filter blur(8px); -webkit-backdrop-filter blur(8px);
}

 内层登录卡片 
.login-wrap{ displaygrid; place-itemscenter; }
.login-card{ widthmin(var(--card-w),92vw); padding28px 30px; border-radiusvar(--radius); }

 玻璃 
.glass{
  background linear-gradient(180deg, #ffffff1a 0%, #ffffff0a 100%);
  border1px solid var(--glass-brd); box-shadow var(--shadow);
  backdrop-filter blur(10px); -webkit-backdrop-filter blur(10px);
}
@supports not ((backdrop-filter blur(10px)) or (-webkit-backdrop-filter blur(10px))){ .glass{ background#0c1730cc } }

 标题区：logo 与标题都“内部水光” 
.card-title{ displayflex; align-itemscenter; gap12px; margin0 0 14px; justify-contentcenter; text-aligncenter; }
.logo-s{ positionrelative; displayinline-grid; place-itemscenter; overflowhidden; border-radius10px; }
.logo-s img{ widthvar(--logo-size); heightvar(--logo-size); displayblock; }
 更细腻的 logo 内部水光：线性+径向叠加，严格在容器内 
.logo-shimmerbefore,
.logo-shimmerafter{
  content; positionabsolute; inset0; border-radiusinherit; pointer-eventsnone; mix-blend-modescreen;
}
.logo-shimmerbefore{
  background linear-gradient(120deg, transparent 30%, rgba(255,255,255,.85) 50%, transparent 70%);
  filter blur(4px); opacity.55; transform translateX(-120%) rotate(0.001deg);
  animation logoSweep 3.8s ease-in-out infinite;
}
.logo-shimmerafter{
  background radial-gradient(60% 40% at -20% 10%, rgba(255,255,255,.65), transparent 60%);
  filter blur(8px); opacity.35; animation logoGlow 4.5s ease-in-out infinite;
}
@keyframes logoSweep{ 0%{transformtranslateX(-120%)} 100%{transformtranslateX(120%)} }
@keyframes logoGlow { 0%,100%{opacity.28} 50%{opacity.5} }

 标题内部水光（仅文字区域） 
.title-water{
  font-weight700; font-sizevar(--title-size); letter-spacing.4px;
  background linear-gradient(90deg, #d7e9ff 0%, #ffffff 20%, #d7e9ff 40%, #d7e9ff 100%);
  -webkit-background-cliptext; background-cliptext; colortransparent;
  background-size 200% 100%; animation textShine 3.6s ease-in-out infinite;
}
@keyframes textShine{ 0%{background-position-50% 0} 100%{background-position150% 0} }

 文案 
.center{text-aligncenter} .muted{colorvar(--muted);margin6px 0 12px;font-size13px} .hint{color#9fb4d1;margin-top10px;font-size12px}

 表单：单列两行 + 固定 400 宽 
.form{ margin-top12px; }
.form-inner{ widthmin(var(--form-max),100%); margin0 auto; }
.form-grid{ displaygrid; gap14px; } .form-grid.one-col{ grid-template-columns1fr; }
.field label{ displayblock; margin-bottom6px; color#c7d5ee; font-size13px; }
.field input[type=text], .field input[type=password]{
  width100%; padding13px 14px; colorvar(--text);
  background#ffffff12; border1px solid #ffffff2b; border-radius12px; outlinenone;
}
.field inputplaceholder{ color#cbd7ee80 } .field inputfocus{ border-color#7aa2ff80; box-shadow0 0 0 4px #5cc8ff22 }

 按钮与页脚 
.actions{ displayflex; gap12px; margin-top10px }
.btn{ bordernone; border-radius12px; padding11px 18px; font-weight600; cursorpointer; transitiontransform .05s ease, filter .15s ease }
.btnactive{ transform translateY(1px) }
.btn-primary{ color#07122b; background linear-gradient(180deg, #98d6ff, #58b7ff) }
.btn-ghost{ color#d8eaff; background transparent; border1px solid #9bc9ff66 }
.footer{ color#a7bfd8; font-size12px; padding18px 0 32px; text-aligncenter; opacity.82 }

 用户系统偏好“减少动态”时关闭动画 
@media (prefers-reduced-motion reduce){
  .logo-shimmerbefore, .logo-shimmerafter, .title-water{ animationnone }
}
/* TGY admin compact pieces */
.btn{ transition:filter .15s ease; }
.btn:hover{ filter:brightness(1.08); }
.m-dot{ font-size:18px; line-height:28px; }
