/* ============ 登录/注册页 · 绿背景 + 玻璃 + 樱花 ============ */
:root{
  --g-bg:rgba(255,255,255,.5);
  --g-strong:rgba(255,255,255,.68);
  --g-border:rgba(255,255,255,.78);
  --g-shadow:0 16px 44px rgba(30,90,60,.16),0 2px 8px rgba(30,90,60,.06);
  --g-blur:26px;
  --g-sat:180%;
  --g-sheen:linear-gradient(135deg,rgba(255,255,255,.6) 0%,rgba(255,255,255,.08) 42%,rgba(255,255,255,0) 60%,rgba(255,255,255,.24) 100%);
}
html,body{
  background:linear-gradient(160deg,#eaf7ef 0%,#d8f0e2 45%,#c9ead8 100%) !important;
  background-attachment:fixed !important;
  min-height:100vh;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(circle at 12% 18%,rgba(140,230,170,.38),transparent 42%),
    radial-gradient(circle at 88% 12%,rgba(120,210,180,.32),transparent 40%),
    radial-gradient(circle at 78% 82%,rgba(160,230,200,.30),transparent 46%);
}
.app,.container,.wrapper,form{position:relative;z-index:1;}
.w-xxl{
  background:var(--g-bg) !important;
  background-image:var(--g-sheen) !important;
  -webkit-backdrop-filter:blur(var(--g-blur)) saturate(var(--g-sat));
  backdrop-filter:blur(var(--g-blur)) saturate(var(--g-sat));
  border:1px solid var(--g-border) !important;
  border-radius:24px !important;
  box-shadow:var(--g-shadow),inset 0 1px 0 rgba(255,255,255,.8) !important;
  padding:30px 26px !important;margin-top:24px !important;max-width:420px !important;
}
.navbar-brand{color:#207a52 !important;font-weight:800}
.form-control,.list-group-item{
  background:var(--g-strong) !important;background-image:var(--g-sheen) !important;
  border:1px solid rgba(255,255,255,.85) !important;
  -webkit-backdrop-filter:blur(10px) saturate(160%);backdrop-filter:blur(10px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7) !important;border-radius:12px !important;
}
.list-group-item{border-radius:12px !important;margin-bottom:10px !important;padding:2px 12px !important}
.list-group-item input{background:transparent !important}
.btn-primary{
  background:linear-gradient(135deg,#3fbf85,#2e9e6b) !important;border:none !important;
  border-radius:999px !important;font-weight:700;
  box-shadow:0 10px 22px rgba(46,158,107,.32),inset 0 1px 0 rgba(255,255,255,.4) !important;
  transition:transform .2s ease,box-shadow .2s ease;
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(46,158,107,.42),inset 0 1px 0 rgba(255,255,255,.5) !important}
.btn-info,.btn-danger{border-radius:999px !important}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .w-xxl,.form-control,.list-group-item{background:rgba(255,255,255,.95) !important;background-image:none !important}
}
/* 樱花 */
#petal-container{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:9999}
.petal{position:absolute;top:-28px;pointer-events:none;opacity:.8;border-radius:150% 0 150% 0;filter:blur(.3px);animation-name:petal-fall;animation-timing-function:linear;animation-fill-mode:both;will-change:transform,opacity;}
@keyframes petal-fall{
  0%{transform:translate3d(0,0,0) rotate(0deg) rotateY(0deg);opacity:.85}
  20%{opacity:1;transform:translate3d(-6vw,20vh,0) rotateY(180deg)}
  40%{transform:translate3d(5vw,40vh,0) rotate(120deg) rotateY(360deg)}
  60%{transform:translate3d(-4vw,60vh,0) rotate(240deg);opacity:.9}
  80%{transform:translate3d(3vw,80vh,0) rotate(300deg)}
  100%{transform:translate3d(-2vw,105vh,0) rotate(360deg);opacity:0}
}
@media (prefers-reduced-motion:reduce){.petal{display:none}#petal-container{display:none}}