.signin-modal[hidden]{display:none!important}
.signin-modal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px}
.signin-modal-mask{position:absolute;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(2px)}
.signin-modal-card{
  position:relative;z-index:1;width:min(420px,100%);
  background:var(--surface,#fff);border:1px solid var(--line,#e5e7eb);
  border-radius:18px;box-shadow:0 20px 50px rgba(15,23,42,.18);
  padding:22px 22px 18px;color:var(--text,#0f172a);
}
.signin-modal-x{
  position:absolute;top:12px;right:12px;width:32px;height:32px;border:0;border-radius:10px;
  background:transparent;color:var(--muted,#64748b);cursor:pointer;display:grid;place-items:center;
}
.signin-modal-x:hover{background:var(--chip,#f1f5f9);color:var(--text,#0f172a)}
.signin-modal-head h3{margin:0 0 6px;font-size:20px;font-weight:800}
.signin-modal-sub{margin:0;font-size:13px;color:var(--muted,#64748b);font-weight:550}
.signin-modal-body{margin:18px 0 16px}
.signin-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.signin-stat{
  padding:12px;border-radius:12px;background:var(--chip,#f8fafc);border:1px solid var(--line,#e5e7eb);
}
.signin-stat b{display:block;font-size:22px;font-weight:800;line-height:1.2;margin-bottom:4px}
.signin-stat span{font-size:12px;color:var(--muted,#64748b);font-weight:650}
.signin-reward{
  padding:12px 14px;border-radius:12px;background:linear-gradient(135deg,#ecfdf5,#f0f9ff);
  border:1px solid #bbf7d0;font-size:13px;font-weight:650;line-height:1.5;margin-bottom:14px;
}
.signin-tiers{
  display:flex;flex-direction:row;flex-wrap:nowrap;gap:10px;
  overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;padding:2px 2px 4px;margin:0 -2px;
  scrollbar-width:none;-ms-overflow-style:none;
  cursor:grab;touch-action:pan-x;user-select:none;
}
.signin-tiers.is-dragging{cursor:grabbing;scroll-snap-type:none}
.signin-tiers::-webkit-scrollbar{display:none;width:0;height:0}
.signin-tier{
  flex:0 0 auto;scroll-snap-align:start;
  width:108px;min-height:108px;padding:12px 10px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;
  border-radius:14px;border:1px solid var(--line,#e5e7eb);background:var(--chip,#f8fafc);
  box-sizing:border-box;
}
.signin-tier.is-on{border-color:#34d399;background:#ecfdf5;box-shadow:inset 0 0 0 1px rgba(52,211,153,.25)}
.signin-tier.is-current{border-color:#16a34a;background:linear-gradient(180deg,#dcfce7,#ecfdf5)}
.signin-tier-day{font-style:normal;font-size:13px;font-weight:800;color:var(--text,#0f172a);line-height:1.2}
.signin-tier-gift{
  width:36px;height:36px;border-radius:12px;display:grid;place-items:center;
  background:#fff;border:1px solid var(--line,#e5e7eb);color:#ca8a04;font-size:18px;
}
.signin-tier.is-on .signin-tier-gift{border-color:#86efac;color:#16a34a;background:#f0fdf4}
.signin-tier-award{font-size:12px;font-weight:700;color:var(--muted,#64748b);line-height:1.35;word-break:break-word}
.signin-tier.is-on .signin-tier-award{color:#15803d}
.signin-loading,.signin-empty{text-align:center;padding:24px 8px;color:var(--muted,#64748b);font-size:13px}
.signin-modal-foot{display:flex;justify-content:stretch}
.signin-check-btn{
  width:100%;height:44px;border:0;border-radius:12px;cursor:pointer;
  background:var(--accent,#22c55e);color:var(--accent-ink,#052e16);
  font-size:15px;font-weight:800;
}
.signin-check-btn:disabled{opacity:.55;cursor:not-allowed}
.signin-check-btn.is-done{background:#e2e8f0;color:#64748b}
