:root {
  --sky: #0ea5e9;
  --cyan: #06b6d4;
}

* { font-family: "Vazirmatn", Tahoma, system-ui, sans-serif; }

body {
  margin: 0;
  background: linear-gradient(180deg, #e0f2fe 0%, #f0f9ff 30%, #ffffff 100%);
  min-height: 100vh;
}

.header-grad {
  background: linear-gradient(135deg, #bae6fd 0%, #a5f3fc 55%, #cffafe 100%);
}

/* Ripples */
.ripple-wrap {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.ripple {
  position: absolute;
  bottom: 6px;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(14, 165, 233, 0.45);
  border-radius: 50%;
  opacity: 0;
  animation: rip 3s ease-out infinite;
}
@keyframes rip {
  0% { transform: scale(0.3); opacity: 0.8; }
  100% { transform: scale(3.5); opacity: 0; }
}

/* Progress bar (RTL fills right->left because container is dir=rtl) */
.progress-track {
  height: 14px;
  border-radius: 999px;
  background: #e0f2fe;
  overflow: hidden;
}
.progress-fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--cyan), var(--sky));
  transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 0 0 8px rgba(6, 182, 212, 0.5);
}

/* Checkboxes */
.chk {
  width: 22px;
  height: 22px;
  accent-color: var(--cyan);
  cursor: pointer;
  flex-shrink: 0;
}

/* Boxes */
.tip-box {
  background: #ecfeff;
  border-right: 4px solid var(--cyan);
  color: #155e75;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 0.92rem;
  line-height: 1.9;
  margin-top: 6px;
}
.warn-box {
  background: #fff7ed;
  border-right: 4px solid #f59e0b;
  color: #9a3412;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 0.92rem;
  line-height: 1.9;
  margin-top: 6px;
}

.anim-open {
  animation: slideDown 0.3s ease;
}
@keyframes slideDown {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

.rotate-180 { transform: rotate(180deg); display: inline-block; }

/* Celebration */
.celebrate-banner {
  background: linear-gradient(135deg, #06b6d4, #0ea5e9);
  color: white;
  box-shadow: 0 10px 30px rgba(6, 182, 212, 0.4);
  animation: pop 0.5s ease;
}
@keyframes pop {
  0% { transform: scale(0.9); opacity: 0; }
  60% { transform: scale(1.03); }
  100% { transform: scale(1); opacity: 1; }
}

/* Confetti */
.confetti-layer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 50;
  overflow: hidden;
}
.confetti-piece {
  position: absolute;
  top: -20px;
  width: 9px;
  height: 14px;
  border-radius: 2px;
  opacity: 0.9;
  animation: fall linear forwards;
}
@keyframes fall {
  0% { transform: translateY(-20px) rotate(0deg); opacity: 1; }
  100% { transform: translateY(105vh) rotate(720deg); opacity: 0.2; }
}