/* ==========  极淡黑白变量  ========== */
:root{
  --ann-glass:rgba(255,255,255,.02);      /* 几乎看不见的白色玻璃 */
  --ann-border:rgba(255,255,255,.05);     /* 更淡的描边 */
  --text-primary:#f1f5f9;                 /* 极亮文字 */
  --text-secondary:#cbd5e1;               /* 次要文字 */
  --text-muted:#94a3b8;                   /* 辅助文字 */
  --ann-radius:clamp(12px,2vw,20px);
  --ann-shadow:0 clamp(8px,3vw,30px) clamp(30px,6vw,60px) rgba(0,0,0,.45);
  --ann-trans:cubic-bezier(.4,0,.2,1);
}

/* ==========  遮罩  ========== */
.ann-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.65);             /* 纯黑遮罩，降低环境干扰 */
  backdrop-filter:blur(6px);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:3000;
  opacity:0;
  visibility:hidden;
  transition:opacity .4s var(--ann-trans), visibility .4s;
}
.ann-overlay.show{
  opacity:1;
  visibility:visible;
}

/* ==========  弹窗  ========== */
.ann-modal{
  width:clamp(300px,90%,480px);
  background:var(--ann-glass);
  border:1px solid var(--ann-border);
  border-radius:var(--ann-radius);
  box-shadow:var(--ann-shadow);
  transform:scale(.9) translateY(20px);
  transition:transform .4s var(--ann-trans);
  position:relative;
}
.ann-overlay.show .ann-modal{
  transform:scale(1) translateY(0);
}

/* 关闭按钮 */
.ann-close{
  position:absolute;
  top:clamp(.75rem,2vw,1.25rem);
  right:clamp(.75rem,2vw,1.25rem);
  background:none;
  border:none;
  color:var(--text-secondary);
  font-size:clamp(1.25rem,4vw,2rem);
  cursor:pointer;
  transition:color .2s, transform .2s;
}
.ann-close:hover{
  color:var(--text-primary);
  transform:rotate(90deg);
}

/* 头部 */
.ann-header{
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:clamp(1rem,3vw,1.75rem) clamp(1rem,3vw,2rem) 0;
}
.ann-header i{
  color:var(--text-primary);               /* 图标用主文字色，避免艳色 */
  font-size:clamp(1.1rem,3vw,1.5rem);
}
.ann-header h3{
  font-size:clamp(1.1rem,3vw,1.5rem);
  color:var(--text-primary);
  font-weight:600;
}

/* 内容 */
.ann-body{
  padding:clamp(1rem,3vw,1.5rem) clamp(1rem,3vw,2rem);
  font-size:clamp(.875rem,2vw,1rem);
  color:var(--text-secondary);
  line-height:1.65;
}

/* 底部 */
.ann-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 clamp(1rem,3vw,2rem) clamp(1rem,3vw,1.5rem);
  flex-wrap:wrap;
  gap:.75rem;
}
.ann-checkbox{
  display:flex;
  align-items:center;
  gap:.5rem;
  color:var(--text-muted);
  font-size:clamp(.75rem,2vw,.875rem);
  cursor:pointer;
}
.ann-checkbox input{
  accent-color:var(--text-primary);        /* 复选框用主文字色 */
}
.ann-btn{
  margin-left:auto;
  background:var(--text-primary);          /* 纯白按钮 */
  color:#0f172a;                           /* 纯黑字，最高对比 */
  border:none;
  padding:clamp(.5rem,2vw,.75rem) clamp(1.2rem,3vw,1.75rem);
  border-radius:calc(var(--ann-radius) / 2);
  font-size:clamp(.875rem,2vw,1rem);
  font-weight:600;
  cursor:pointer;
  transition:transform .2s, box-shadow .2s;
}
.ann-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(241,245,249,.25);
}